iptables之透明代理Transparent Proxying

来自于

Linux iptables Pocket Reference

透明代理是一种截获指定向外连接并转向一台可以达到本来连接目的连接的一种方式,这种技术可以使你只设置代理服务,而不用给内网的每一台电脑设置访问方式。

因为所有访问外部的流量都经过网关,所以所有的向外连接通过端口都是透明的。

如果你在防火墙监听了一个HTTP代理,端口8888,例如Squid,你可以添加这样一条转出规则:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8888

 

 

iptables做网关,针对端口级别的做转发,网关ip为{gateway}

-A PREROUTING -d {gateway}/32 -p tcp -m tcp --dport 8989 -j DNAT --to-destination 192.168.1.2:9200 
-A POSTROUTING -s 192.168.1.2/32 -o eth1 -p tcp -j SNAT --to-source {gateway}:8989 

多个端口一对一映射

{gateway}8989 <-> {lan_ip}:9200
{gateway}8990 <-> {lan_ip}:9300

-A PREROUTING  -d {gateway}/32 -p tcp -m tcp --dport 8989 -j DNAT --to-destination {lan_ip}:9200 
-A PREROUTING  -d {gateway}/32 -p tcp -m tcp --dport 8990 -j DNAT --to-destination {lan_ip}:9300 
-A POSTROUTING -s {lan_ip}/32 -o eth1 -p tcp -m tcp --dport 9200 -j SNAT --to-source {gateway}:8989 
-A POSTROUTING -s {lan_ip}/32 -o eth1 -p tcp -m tcp --dport 9300 -j SNAT --to-source {gateway}:8990

留下评论

电子邮件地址不会被公开。 必填项已用*标注