Linux下用iptables做端口映射详细过程


在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考。

【实现功能】 

server-A 

eth0      119.159.220.96  外网 

eth1      10.105.75.32     内网

server-B 

192.168.137.3              内网

将server-A的80端口映射到server-B的3306端口,实现通过server-A的外网地址访问server-B内网的3389端口。

 

【步骤】

1、 首先应该做的是/etc/sysctl.conf配置文件的  net.ipv4.ip_forward = 1 默认是0    这样允许iptalbes FORWARD。

2、 清空iptables默认规则   

iptalbes -F
iptalbes -X
iptalbes -Z

3、 重新配置规则

iptables -t nat -A PREROUTING -d 119.x.x.x -p tcp --dport 80 -j DNAT --to-destination 192.168.137.3:3389

iptables -t nat -A POSTROUTING -d 192.168.137.3 -p tcp --dport 3389 -j SNAT --to 10.105.75.32

iptables -A FORWARD -o eth0 -d 192.168.137.3 -p tcp --dport 3389 -j ACCEPT

iptables -A FORWARD -i eth0 -s 192.168.137.3 -p tcp --sport 3389 -j ACCEPT

 

DNAT SNAT 的请参考帮助,这里不再陈述。

 

4、 把规则写成脚本,加入到/etc/rc.local 开机自动运行里面。

vim /bin/iptables.sh

iptalbes -F
iptalbes -X
iptalbes -Z   
iptables -t nat -A PREROUTING -d 119.xxx.xxx -p tcp --dport 80 -j DNAT --to-destination 192.168.137.3:3389

iptables -t nat -A POSTROUTING -d 192.168.137.3 -p tcp --dport 3389 -j SNAT --to 10.105.x.x最后把/bin/iptables.sh脚本加入开机运行。

echo "/bin/iptables.sh" >> /etc/rc.local