天天看點

Linux運用iptables端口轉發

啟用網卡轉發功能

#echo 1 > /proc/sys/net/ipv4/ip_forward

舉例:從192.168.0.132:21521(新端口)通路192.168.0.211:1521端口

a.同一端口轉發192.168.0.132上開通1521端口通路

iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211

iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADE

b.不同端口轉發192.168.0.132上開通21521端口通路 

iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21521 -j DNAT --to-destination 192.168.0.211:1521

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.0.132

以上兩條等價配置(更簡單[指定網卡]):

<b></b>

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521

iptables -t nat -A POSTROUTING -j MASQUERADE

儲存iptables

#service iptables save

#service iptables restart

二 用iptables做本機端口轉發

代碼如下:

  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

估計适當增加其它的參數也可以做不同IP的端口轉發。

如果需要本機也可以通路,則需要配置OUTPUT鍊

(********特别注意:本機通路外網的端口會轉發到本地,導緻訪不到外網,如通路yown.com,實際上是通路到本地,建議不做80端口的轉發或者指定目的 -d localhost):

  iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080

原因:

外網通路需要經過PREROUTING鍊,但是localhost不經過該鍊,是以需要用OUTPUT。

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 20022 -j REDIRECT --to-ports 22  

端口轉發

IP端口轉發

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 881 -j DNAT --to-destination 10.10.2.200:881 

/sbin/iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.200 -p tcp -m tcp --dport 881 -j SNAT --to-source 

/sbin/iptables –A INPUT –p tcp –dport 881 –i ppp0 –j ACCEPT  

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 800 -j DNAT --to-destination 10.10.2.101:800  

/sbin/iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.101 -p tcp -m tcp --dport 800 -j SNAT --to-source 

/sbin/iptables –A INPUT –p tcp –dport 800 –i ppp0 –j ACCEPT 

/sbin/iptables -t nat -A PREROUTING -p tcp -d --dport 80  -J DNAT --to-destination :8080

/sbin/iptables -t nat -A POSTROUTING -p tcp -s --sport 8080 -J SNAT --to-source