Think before you speak, read before you think.

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

Comments

2 responses to “iptables之透明代理Transparent Proxying”

  1. moonmountain Avatar
    moonmountain

    这不叫透明代理,他没透明。

  2. 透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP,多用于路由器的NAT转发中。

Leave a Reply

Your email address will not be published. Required fields are marked *