请熟悉iptables的朋友来看看这个:

由 尘飞扬 在 01-12-2004 21:23 发表:

请熟悉iptables的朋友来看看这个:

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.11.0/24 -o eth0 -j SNAT --to 192.168.1.12

这是nbxmedia版主在精华贴中:简单方法建立squid+iptable的透明代理中的方法。在这第一句中是端口转向,第二句是做了一个源地址映射,我也按照这篇文章进行了配置,开始我也以为是透明代理做成了,可是后来仔细检查发现不对劲。首先,我的squid单独使用已经正常。但是这里的这两句,我只要第二句就可以上网,但这是NAT方式啊,我的squid并没有启作用啊,为了证明,我关掉了squid客户端也可以正常上网。而我只留第一句就没有反应了,作透明代理还需要什么呢?据说在squid中需要编译的时候加载什么模块,我是redhat9默认安装的,我也不知道到底行不行,如果不删除squid有什么方法可以看到它加载了哪些模块呢?有没有什么方法进行重新加载呢?


清风徐来尘飞扬


由 大熊宝宝 在 01-13-2004 12:19 发表:


iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

有第1句就可以了啊 你的squid是3128吗 先在浏览器里设置代理服务器看看能不能正常上网 先测试SQUID是不是工作了


请兄弟们正确发贴,把问题发到相关版块 发贴标题请简明扼要 谢谢大家配合.

新会员发贴前请学会搜索论坛 有可能你的问题已经有答案了


由 尘飞扬 在 01-13-2004 13:19 发表:

我的squid是3128,也可以正常工作。

在客户机上添加代理是可以上网的,但是用iptables这一句确不行,改来改去都不行。


清风徐来尘飞扬


由 尘飞扬 在 01-13-2004 13:35 发表:

就像上面,如果第一句就可以了

为什么每个介绍透明代理的资料上都有两句呢?如果透明代理可以成功,那么再加第二句的理由又是什么呢?不至于是双保险吧:)


清风徐来尘飞扬


由 aborigen 在 01-13-2004 16:11 发表:


你要更多的注意他的上下文

eth1连接内部网络,网段为192.168.11.0/24

eth0连接外网,网段为192.168.1.0/24(网关的外网地址是192.168.1.12)

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

这句的作用是把从内网进入网关,目标端口为80的访问转交给squid(假设默认squid为3128),如此,内网的机器不需要在浏览器(IE等)中设置代理服务器地址,其对外访问在进入网关时自动被强行转交给squid了,这就是透明的含义(不需要客户端设置)。

iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j SNAT --to 192.168.1.12

如果你希望客户机只能看网页,并且内部有正常运作的dns server,并且客户机均使用这些内部dns server,这一句可以不要;

一般情况下,不是这样,所以需要这句为客户机提供除了“浏览端口为80的网站”以外的能力,比如上qq、ftp等等。


由 尘飞扬 在 01-13-2004 16:53 发表:

我的配置也是一样的啊

eth1为外网,哦,我想起来了,我做网关的机器是在局域网内的,所以我把第二句改成了:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 192.168.0.226

我的内网卡接得是192.168.1.0段,我的"外网卡"地址是:192.168.0.226

这样设置以后,我的内网机器是可以上网的,但是透明代理无法进行,请问这跟我的"外网"也是局域网有关系么?


清风徐来尘飞扬


由 kensin 在 01-13-2004 18:20 发表:


对iptables所知不多,在这和各位探讨,不对之处,请指正。

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

这一句是配置“透明代理”用的,只有在安装了squid并正确运行了才会有效。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 19

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus