文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>iptables的端口转发

iptables的端口转发

时间:2009-03-29  来源:CUDev

目标:对于Host A通过Host B:80访问Host C:80

情况1:Host C跟Host B的局域网中,也就是说Host C的网关是Host B

这种情况就是我们经常讨论和使用的DNAT,例如网关IP为1.2.3.4,其内网IP为192.168.2.1,存在一个内网主机192.168.2.2提供web服务。

iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 192..168.2.2

情况2:如果Host C的默认网关不是Host B,也就是说Host C不是Host B内部网络中的一个主机的这种情况。

这种情况下,在应用层有很多的方法,像squid、datapipe等都可以实现这样的反向代理。

但是对于netfilter只有在Host A的IP地址已知的情况下可以实现这种反向代理,而无法做到像squid那样灵活的反向代理。这里面最主要的原因在于这种反向代理需要维护两个连接,而netfilter现在没有这个能力,只有在上层的socket层实现。当然如果代理请求的源地址只有一个的话,就没有问题了,就是我们讨论的这种情况。

将$IP1 通过$IP2:80 访问 $IP3:80
修改目的地址和源地址

#修改目的地址
iptables -t nat -A PREROUTING -d $IP2 -p tcp --dport 80 -j DNAT
--to-destination $IP3
#修改源地址
iptables -t nat -A POSTROUTING -d $IP3 -p tcp --dport 80 -j SNAT
--to-source $IP2

#修改目的地址
iptables -t nat -A PREROUTING -s $IP3 -p tcp --sport 80 -j DNAT
--to-destination $IP1
#修改源地址
iptables -t nat -A POSTROUTING -s $IP3 -p tcp --sport 80 -j SNAT
--to-source $IP2

参考:
http://proudeng.spaces.live.com/Blog/cns!C924C414C7191D53!557.entry
相关阅读 更多 +
排行榜 更多 +
房间毁灭模拟器最新版

房间毁灭模拟器最新版

休闲益智 下载
街头追逐者最新版

街头追逐者最新版

休闲益智 下载
弓箭手2内置作弊菜单

弓箭手2内置作弊菜单

休闲益智 下载