CentOS 下做連接埠映射/連接埠轉寄
==[實現目標]==================
[伺服器A]有2塊網卡,一塊接內網,一塊接外網,[伺服器B]只有一塊內網網卡;
訪問[伺服器A]的7890連接埠跳轉至[伺服器B]的80連接埠。
==[硬體裝置]==================
伺服器A
eth0 10.0.0.49 內網
eth1 192.168.0.222 外網
伺服器B
eth0 10.0.0.10 內網
==[步驟實現]==================
1、 首先應該做的是/etc/sysctl.conf設定檔的 net.ipv4.ip_forward = 1 預設是0 這樣允許iptalbes FORWARD。
2、 service iptables stop
3、 重新設定規則
iptables -t nat -A PREROUTING -d 192.168.0.222 -p tcp --dport 7890 -j DNAT --to-destination 10.0.0.10:80
iptables -t nat -A POSTROUTING -d 10.0.0.10 -p tcp --dport 80 -j SNAT --to 10.0.0.49
iptables -A FORWARD -o eth0 -d 10.0.0.10 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -s 10.0.0.10 -p tcp --sport 80 -j ACCEPT
service iptables save
4、 啟動iptables 服務, service iptables start
---[簡易說明,可跳過]----------------------
iptables -t nat -A PREROUTING -d 192.168.0.222 -p tcp --dport 7890 -j DNAT --to-destination 10.0.0.10:80
#將[伺服器A]的網卡eth1中7890連接埠,指向至[伺服器B]的網卡eth0中80連接埠;
iptables -t nat -A POSTROUTING -d 10.0.0.10 -p tcp --dport 80 -j SNAT --to 10.0.0.49
#將[伺服器B]的網卡etch0中80連接埠,指向回[伺服器A]的網卡eth0;
iptables -A FORWARD -o eth0 -d 10.0.0.10 -p tcp --dport 80 -j ACCEPT
#轉寄規則:[伺服器A]網卡eth0 出 至[伺服器B]的80連接埠;
iptables -A FORWARD -i eth0 -s 10.0.0.10 -p tcp --sport 80 -j ACCEPT
#轉寄規則:[伺服器A]網卡eth0 入 至[伺服器B]的80連接埠;
service iptables save
#將當前規則儲存到 /etc/sysconfig/iptables
如果希望全連接埠轉寄可以使用*號代替指定連接埠號碼。
若你對這個檔案很熟悉直接修改這裡的內容也等於命令列方式輸入規則,以下供參考。
--[/etc/sysconfig/iptables 檔案內容]--------------
# Generated by iptables-save v1.4.7 on Tue Mar 28 20:26:23 2017
*nat
:PREROUTING ACCEPT [5:322]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 192.168.0.222/32 -p tcp -m tcp --dport 7890 -j DNAT --to-destination 10.0.0.10:80
-A POSTROUTING -d 10.0.0.10/32 -p tcp -m tcp --dport 8086 -j SNAT --to-source 10.0.0.49
COMMIT
# Completed on Tue Mar 28 20:26:23 2017
# Generated by iptables-save v1.4.7 on Tue Mar 28 20:26:23 2017
*filter
:INPUT ACCEPT [1204:145670]
:FORWARD ACCEPT [90:9051]
:OUTPUT ACCEPT [595:85633]
-A FORWARD -d 10.0.0.10/32 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 10.0.0.10/32 -i eth0 -p tcp -m tcp --sport 80 -j ACCEPT
COMMIT
# Completed on Tue Mar 28 20:26:23 2017
---------------------------------------------------