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服務。