linux下用iptables做本機連接埠轉寄方法__linux

來源:互聯網
上載者:User


一 :從一台機到另一台機連接埠轉寄
啟用網卡轉寄功能
#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 --dport21521 -j DNAT --to-destination192.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。


#######################################################################################

概述:公司有一些核心MYSQL伺服器位於核心機房的內網段,作為營運人員,經常需要去串連這些伺服器,因無法直接通過外網訪問,給管理造成了不便。


思路:雖然解決此問題的方法及思路有很多,但當下想使用IPTABLES的連接埠重新導向功能解決此問題,比較簡單易用,而且擴充性也比較好,依次類推,可以運用到其他的連接埠轉寄方面的應用。
網路環境:
公網伺服器      :eth0:公網IP    eth1:內網IP - 192.168.1.1
MYSQL伺服器:eth1:內網IP - 192.168.1.2

實現方法:通過訪問公網IP的63306連接埠來實現到內網MYSQL伺服器的3306連接埠的訪問
在公網伺服器上:
配置指令碼:
iptables -t nat -A PREROUTING -p tcp --dport 63306 -j DNAT --to-destination 192.168.1.2:3306
iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 3306 -j SNAT --to 192.168.1.1

允許伺服器的IP轉寄功能:

echo 1 > /proc/sys/net/ipv4/ip_forward
使用方法:
mysql -h 公網IP -p 63306 -uroot -p

###############################################################################################


由於業務需要,伺服器越來越多,內網伺服器無外網環境管理甚是不便,所以折騰了一下外網到內網的連接埠轉寄以達到輕鬆管理的目的,貼一下心得。


S1:
eth0 10.0.0.1
eth1 x.x.x.x


S2:
eth0 10.0.0.2


S1 8082連接埠轉寄到內網機器22連接埠

iptables規則配置如下:

iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8082 -j DNAT --to-destination 10.0.0.2:22

iptables -t nat -A POSTROUTING -d 10.0.0.2 -p tcp --dport 22 -j SNAT --to-source x.x.x.x

說明:
iptables -t nat -A PREROUTING -d "對外公網ip" -p tcp --dport "對外連接埠" -j DNAT --to "內部實際提供服務的ip":"實際提供服務的連接埠"

iptables -t nat -A POSTROUTING -d "內部實際提供服務的ip"-p tcp --dport "實際提供服務的連接埠" -j SNAT --to-source "運行iptables機器的內網ip"


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.