端口转发在CENT OS 6.5中不适用于SQUID透明代理

时间:2014-03-11 22:51:56

标签: iptables centos6 squid portforwarding transparentproxy

我在CENT OS 6.5中遇到端口转发问题。

我需要将所有传入流量从端口80转发到3128.就像设置透明代理服务器一样。我曾经尝试过它并没有奏效。我的透明代理服务器IP是10.5.255.252

请参阅下面的配置。

<code>
[root@xxxxxxhost xx-yy]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             10.5.255.252        multiport dports http,https to:10.5.255.252:3128 

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.5.0.0/16          anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

[root@xxxxxxhost xx-yy]# iptables-save
*nat
:PREROUTING ACCEPT [18:3530]
:POSTROUTING ACCEPT [9:540]
:OUTPUT ACCEPT [228:14574]
-A PREROUTING -d 10.5.255.252/32 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.5.255.252:3128 
-A POSTROUTING -s 10.5.0.0/16 -o eth0 -j MASQUERADE 
COMMIT

[root@xxxxxxhost xx-yy]# cat /proc/sys/net/ipv4/ip_forward 
1

[root@xxxxxxhost xx-yy]# wget 127.0.0.1
--2014-03-12 04:05:51--  http://127.0.0.1/
Resolving 127.0.0.1... 127.0.0.1
Connecting to 127.0.0.1|127.0.0.1|:80... failed: Connection refused.

[root@xxxxxxhost xx-yy]# wget 127.0.0.1:3128
--2014-03-12 04:05:55--  http://127.0.0.1:3128/
Resolving 127.0.0.1... 127.0.0.1
Connecting to 127.0.0.1|127.0.0.1|:3128... connected.
HTTP request sent, awaiting response... ^C

[root@xxxxxxhost xx-yy]# 
</code>

如果您在上面看到对端口80上的localhost的wget请求被拒绝,但是接受了对3128端口的请求。所以它不起作用:(

甚至尝试过以下规则。

<code>
iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -d 10.5.255.252 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.5.255.252:3128
iptables -t nat -A POSTROUTING -d 10.5.255.252 -p tcp --dport 3128 -j SNAT --to-source 10.5.255.252
</code>

但没有任何效果。你能帮我解决一下吗?

感谢您的帮助。

0 个答案:

没有答案