LinuxSir.cn,穿越时空的Linuxsir!

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

iptables+squid做透明代理的两个问题

[复制链接]
发表于 2005-1-6 08:57:06 | 显示全部楼层 |阅读模式
1、透明代理多是在iptables加两行,如下一问代码内所示,都是把80端口的访问转到3128端口,那么其他服务比如ftp、smtp、pop3的端口怎么办?要不要也写一行?

2、另外我的iptables启动出错,大侠帮我看看是什么问题,谢谢!
[root@amd root]# cat /etc/rc.d/firewall
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "starting iptables rules"
modprobe ip_tables
modprobe ip_nat_ftp
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
[root@amd root]# ll /etc/rc.d/firewall   
-rwxr--r--    1 root     root          252 Jan  4 19:11 /etc/rc.d/firewall
[root@amd root]#
[root@amd root]# /etc/rc.d/firewall
: No such file or directory /proc/sys/net/ipv4/ip_forward
starting iptables rules
modprobe: Can't locate module ip_tables
modprobe: Can't locate module ip_nat_ftp
'ad argument `
Try `iptables -h' or 'iptables --help' for more information.


iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这两个命令我在系统提示符后面单独执行就没有问题,放在一起执行就提示出错:

'ad argument `
Try `iptables -h' or 'iptables --help' for more information.

为什么?
发表于 2005-1-6 09:01:01 | 显示全部楼层
说白了,透明代理http就是访问网关的port 80。只不过将80收到的数据在3128上进行控制而已。

后面的错误是没有找到相关的文件。
 楼主| 发表于 2005-1-6 14:50:52 | 显示全部楼层
透明代理的客户端机器还要设置DNS服务器吗?

此时客户端机器的foxmail等邮件软件要不要做其他的设置?
发表于 2005-1-6 16:48:36 | 显示全部楼层
编制内核时,有没有把 ip_tables, ip_nat_ftp编制成模组加载。
 楼主| 发表于 2005-1-6 18:41:36 | 显示全部楼层
我安装的是RHEL AS3 UPDATE 3 X86-64,服务器是HP DL145,Opteron的CPU的。

有人说这个发行版的内核是做过优化的,最好不要自己再升级。

好象现在不是透明代理,要在相关软件里面设置代理服务器才能上网。
发表于 2005-1-6 20:00:59 | 显示全部楼层
透明代理可以说就是做成网关。
你设置网关及DNS就成了。
如果你有DHCP,那就更好了。
不需要手工设置了。
 楼主| 发表于 2005-1-6 21:06:21 | 显示全部楼层
我运行了那两行iptables的语句,没有提示错误,squid.conf里面有这个:

#透明代理设置
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

可是浏览器里面不设置代理服务器,只是把代理服务器的内网IP设置为网关就无法上网,设置了代理就可可以了,那就是说现在不是透明代理了?

怎么办?
发表于 2005-1-7 18:25:34 | 显示全部楼层
Post by arbor
1、透明代理多是在iptables加两行,如下一问代码内所示,都是把80端口的访问转到3128端口,那么其他服务比如ftp、smtp、pop3的端口怎么办?要不要也写一行?

2、另外我的iptables启动出错,大侠帮我看看是什么问题,谢谢!


iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这两个命令我在系统提示符后面单独执行就没有问题,放在一起执行就提示出错:

'ad argument `
Try `iptables -h' or 'iptables --help' for more information.

为什么?


那你把删除就可以了哦。。
modprobe ip_tables
modprobe ip_nat_ftp
发表于 2005-1-7 18:26:27 | 显示全部楼层
smtp、pop3

squid现暂不支持
 楼主| 发表于 2005-1-7 20:19:35 | 显示全部楼层
好象我现在还不是透明代理,要在浏览器里面设置代理才可以上网,只是把网关设置为代理服务器的IP不行,哪里还有错?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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