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


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

【实现功能】 

server-A 

eth0      58.215.xxx.xx   外网 

eth1      192.168.1.2     内网

server-B 

192.168.1.3              内网

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

 

【步骤】

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 58.215.xxx.xxx -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.3:3306

iptables -t nat -A POSTROUTING -d 192.168.1.3 -p tcp --dport 3306 -j SNAT --to 192.168.1.2

iptables -A FORWARD -o eth0 -d 192.168.1.3 -p tcp --dport 3306 -j ACCEPT

iptables -A FORWARD -i eth0 -s 192.168.1.3 -p tcp --sport 3306 -j ACCEPT

 

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

 

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

vim /bin/iptables.sh

iptalbes -F
iptalbes -X
iptalbes -Z  
iptables -t nat -A PREROUTING -d 58.215.xxx.xxx -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.3:3306
iptables -t nat -A POSTROUTING -d 192.168.1.3 -p tcp --dport 3306 -j SNAT --to 192.168.1.2

最后把/bin/iptables.sh脚本加入开机运行。

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