LinuxSir.cn,穿越时空的Linuxsir!

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

iptables 透明网关问题求助!

[复制链接]
发表于 2005-4-28 11:36:28 | 显示全部楼层 |阅读模式
我想用squid+iptables做透明代理,现在squid可以用了,就是IE和QQ需要设置代理才可以上去,透明代理老不成功。
squid中与透明代理有关的都设置好了
我用2块网卡 外网eth1 202.*.*.*,  内网eth0 192.168.0.1
局域网用192.168.0.1做网关

我的iptables如下:
在、/etc/rc.d/rc.local中加入了
echo 1 >/proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A PREROUTING -i eth1  -p tcp -m tcp --dport 80 -j REDIRECT  --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/24  -o eth0  -j MASQUERADE

运行/etc/rc.d/rc.local后试着不用代理上IE,失败。望大侠们指教啊 谢谢啊!
发表于 2005-4-28 11:38:21 | 显示全部楼层
不能上,错误在什么地方.

并且做透明代理,squid.conf还要设置的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-28 13:56:02 | 显示全部楼层
就是在IE的选项里要设置代理服务器才可以上去,如果不使用代理就不行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-28 13:58:49 | 显示全部楼层
squid.conf关于透明代理的都设好了
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
回复 支持 反对

使用道具 举报

发表于 2005-4-28 14:20:23 | 显示全部楼层
echo 1 >/proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/24  -j MASQUERADE

建议你使用SNAT方式走外网.

MASQUERADE主要用到拨号.当然你也可以用的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-28 15:20:35 | 显示全部楼层
echo 1 >/proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth1   -s 192.168.0.0/24  -j  SNAT --to  202.211.1.3

eth1接外网,IP202.211.1.3,eth0接内网,IP192.168.0.1
szkingrose,谢谢你!可我按如上方法试了,好像还是不能透明代理啊 ,
回复 支持 反对

使用道具 举报

发表于 2005-4-28 15:30:26 | 显示全部楼层
你现在要指定iptables中的  -i  -o这样的参数.

你再试一试/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-28 17:29:17 | 显示全部楼层
哈哈 已经指定了啊 上面的脚本我已经加上了
回复 支持 反对

使用道具 举报

发表于 2005-4-28 20:26:02 | 显示全部楼层
那你先试着把SQUID停了,就用IPTABLES看能透明代理不!要可以的话就是你的SQUID设置有问,要不行的话当然就是IPTABLES的问题!
回复 支持 反对

使用道具 举报

发表于 2005-4-29 15:02:56 | 显示全部楼层
echo 1 >/proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
把上面这条修改为 iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destiontion 192.168.0.1 --to-ports 3128
这里假定你的SQUID服务器是架设在192.168.0.1
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to 202.211.1.3
回复 支持 反对

使用道具 举报

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

本版积分规则

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