Linux端口映射技术文档
----作者:小迟日期:2007.9.19
测试环境:AS3
目的:
通过221.231.141.195的2200端口访问172.16.58.110的22端口
通过221.231.141.195的2222端口访问172.16.58.220的22端口
操作:
221.231.141.195的22端口已经映射到172.16.58.240的22端口,所以我们通过SecureCRT连到221.231.141.195上(实际上是连到了172.16.58.240上)然后添加两条以下规则:
iptables -t nat -A PREROUTING -d 172.16.58.240 -ptcp --dport 2200 -j DNAT --to 172.16.58.110:22
iptables -t nat -A PREROUTING -d 172.16.58.240 -ptcp --dport 2222 -j DNAT --to 172.16.58.220:22
规则含义是:如果数据包的目标地址是172.16.58.240、端口是2200、协议是tcp,就将这个包进行目标地址转换(-jDNAT),转换的目标地址是172.16.58.110的22端口。
开启路由转发功能:
echo "1">/proc/sys/net/ipv4/ip_forward
保存规则:
iptables-save>/etc/sysconfig/iptables
然后分别在172.16.58.110、172.16.58.220上编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件:
添加:GATEWAY=172.16.58.240(指向端口转发的那台服务器,这里是172.16.58.240)
然后:ifdown eth0 &&ifup eth0
OK,这样即可达到目的!