CentOS下iptables的端口映射
一、环境与需求
实验环境
节点的网络设置如下:
节点 | 网卡 | IP | 网络 |
---|---|---|---|
Node1 | eth0 | 172.19.104.33 | 内网 |
Node1 | eth1 | 6.6.5.5 | 外网 |
Node2 | eth0 | 172.19.104.14 | 内网 |
需求
我们要实现的功能就是将Node1的8100端口映射到Node2的8000端口,也即外网访问http://6.6.5.5:8100即可访问到PC2上8000端口的WEB服务。
二、实现步骤
以下操作都在Node1上进行操作,部分修改操作可能需要root权限
1、 首先编辑
/etc/sysctl.conf
配置文件的
net.ipv4.ip_forward = 1
默认是0,再执行
sysctl -p
使其生效
或直接执行
echo > /proc/sys/net/ipv4/ip_forward
2、 执行
iptables -t nat -A PREROUTING -d -p tcp --dport -j DNAT --to-destination :
iptables -t nat -A POSTROUTING -d172 -p tcp --dport -j SNAT --to
iptables -A FORWARD -o eth0 -d172 -p tcp --dport -j ACCEPT
iptables -A FORWARD -i eth0 -s -p tcp --sport -j ACCEPT
iptables save
注意IP、端口、网卡的配置
或直接修改位置文件
编辑
/etc/sysconfig/iptables
添加以下内容
以下为参考文件,根据具体情况进行修改
...
-A PREROUTING -d -p tcp -m tcp --dport -j DNAT --to-destination :
-A POSTROUTING -d -p tcp -m tcp --dport -j SNAT --to-source
...
-A FORWARD -o eth0 -d -p tcp --dport -j ACCEPT
-A FORWARD -i eth0 -s -p tcp --dport -j ACCEPT
...
3、重启iptables
/etc/init.d/iptables restart
或
service iptables restart
三、测试
现在访问http://6.6.5.5:8100即可访问到Node2上8000端口的WEB服务。