歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 輕松搞定Linux端口轉發

輕松搞定Linux端口轉發

日期:2017/2/28 15:47:17   编辑:Linux教程

一 從一台機到另一台機端口轉發

啟用網卡轉發功能
#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


以上兩條等價配置(更簡單[指定網卡]):
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。

Copyright © Linux教程網 All Rights Reserved