51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

2台机器之间的端口转发iptables

2台机器之间的端口转发iptables方式实现,场景:

两台机器,A机器能正常访问,B机器不能直接被访问,所以希望用A机器进行端口转发间接访问B机器,大致思路: 路由器 ---- 指定端口nat到 ------- A机器---------iptables nat 到 ------------B机器的端口

iptables -t nat -A PREROUTING -i em3 -p tcp --dport 5080 -j DNAT --to 192.168.0.230:80

(后面这个ip是B机器的ip加端口,前面的em3是A机器的数据经过的网卡 5080是访问A机器的5080端口就转发到后面机器来) iptables -t nat -A POSTROUTING -j MASQUERADE (MASQUERADE地址伪装封包出去,在iptables中有着和SNAT相近的效果) iptables -t nat -L -n 查看规则

知识扩展:

iptables中可以灵活的做各种网络地址转换(NAT),地址转换主要有两种:SNAT和DNAT。 SNAT:源地址目标转换(source network address translation) 目标地址不变,重新改写源地址,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机。目前大多都是解决内网用户用同一个公网地址上网的情况。

DNAT:目标网络地址转换(destination network address translation) 和SNAT相反,源地址不变,重新修改目标地址,在本机建立NAT表项,当数据返回时,根据NAT表将源地址修改为数据发送过来时的目标地址,并发给远程主机。 在DNAT的基础上,可以根据请求数据包的端口做PNAT(端口转换,也称为端口映射),可以更句请求数据包不同的端口改写不同的目标地址,从而发送给不同的主机。

本文出自 "PHP/Linux@HeFei" 博客,请务必保留此出处http://liang3391.blog.51cto.com/178205/1946533

赞(0)
未经允许不得转载:工具盒子 » 2台机器之间的端口转发iptables