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 --------------------------------------------------- 添加端口: # /sbin/iptables -I INPUT -p tcp --dport 端口號 -j ACCEPT 保存設置:# /etc/rc.d/init.d/iptables save 查看是否添加成功:# /etc/init.d/iptables status | grep tcp