LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 881|回复: 4

透明代理问题请教!搞了有几天了----

[复制链接]
发表于 2005-1-21 10:35:00 | 显示全部楼层 |阅读模式
闲着没事,在学校局域网中装了一台redhat 9.0.并想尝试配置一下透明代理.
redhat 9.0:
IP:192.168.30.178
掩码:255.255.255.0
网关:192.168.30.1
DNS:221.228.255.1

winXP:
IP:192.168.30.118
掩码:255.255.255.0
网关:192.168.30.1
DNS:221.228.255.1

两台机在同一子网内,现想实现winxp通过以linux为透明代理服务器的形式连接网络.
按照nbxmedia兄的这贴
http://www.linuxsir.cn/bbs/showt ... %B4%FA+%B4%FA%C0%ED
已实现squid代理上网,即在ie中设置linux为代理.现在就是不能实现透明代理.
我在/etc/rc.local下加入如下几行:
#加载iptables的相关模块:
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#把80端口的包全部转向3128端口
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#ip转向,192.168.30.0/24为内网网段
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o eth0 -j SNAT --to 192.168.30.178

运行/etc/rc.d/rc.local后提示:
[root@blue root]# /etc/rc.d/rc.local
iptables v1.2.7a: Need TCP or UDP with port specification
不知错在哪儿,也不知:
#把80端口的包全部转向3128端口
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#ip转向,192.168.30.0/24为内网网段
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o eth0 -j SNAT --to 192.168.30.178
这两个规则写的对否.不理解
 楼主| 发表于 2005-1-21 17:27:11 | 显示全部楼层
懂的弟兄帮着顶一顶啊,问题还没解决,也不知这样做是否可行???
回复 支持 反对

使用道具 举报

发表于 2005-1-21 20:06:07 | 显示全部楼层
我作练习时是这么写的:
# echo 1 > /proc/sys/net/ipv4/ip_forword
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to -port 3128
然后重启squid服务就好了
我的系统是fedora 2,
不知道这样对你有没有帮助.
回复 支持 反对

使用道具 举报

发表于 2005-1-21 20:29:40 | 显示全部楼层
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

在nat表的PREROUTING链最后添加规则:所有进入eth0 80端口的TCP数据包全部重新定向到3128端口.
PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址.
但跟据我看的指南有点出入.应该改成:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128




iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o eth0 -j SNAT --to 192.168.30.178
这条规则里 -s 192.168.30.0/24 -o eth0 这里看不太明白...请问是什么意思 ?
-s 192.168.30.0/24 是指以IP源地址匹配包
-o eth0 是指以包离开本地所使用的网络接口来匹配包

小弟初学..出错的地方请大家指教..谢谢.
回复 支持 反对

使用道具 举报

发表于 2005-1-24 01:26:47 | 显示全部楼层
echo 1 > /proc/sys/net/ipv4/ip_forword

哥们你不打开内核转发,能好用吗。 用以下的试试吧。
echo "Enable iptables......."
echo 1 > /proc/sys/net/ipv4/ip_forword
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#把80端口的包全部转向3128端口
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#ip转向,192.168.30.0/24为内网网段
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o eth0 -j SNAT --to 192.168.30.178
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表