linux下用iptables做本机端口转发方法(转载)
一 :從一臺機到另一臺機端口轉(zhuǎn)發(fā)
啟用網(wǎng)卡轉(zhuǎn)發(fā)功能
#echo 1 > /proc/sys/net/ipv4/ip_forward
舉例:從192.168.0.132:21521(新端口)訪問192.168.0.211:1521端口
?
a.同一端口轉(zhuǎn)發(fā)(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.不同端口轉(zhuǎn)發(fā)(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
以上兩條等價配置(更簡單[指定網(wǎng)卡]):
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做本機端口轉(zhuǎn)發(fā)
? 代碼如下:
? iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
? 估計適當增加其它的參數(shù)也可以做不同IP的端口轉(zhuǎn)發(fā)。
? 如果需要本機也可以訪問,則需要配置OUTPUT鏈(********特別注意:本機訪問外網(wǎng)的端口會轉(zhuǎn)發(fā)到本地,導致訪不到外網(wǎng),如訪問yown.com,實際上是訪問到本地,建議不做80端口的轉(zhuǎn)發(fā)或者指定目的 -d localhost):
? iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
原因:
外網(wǎng)訪問需要經(jīng)過PREROUTING鏈,但是localhost不經(jīng)過該鏈,因此需要用OUTPUT。
#######################################################################################
概述:公司有一些核心MySQL服務器位于核心機房的內(nèi)網(wǎng)段,作為運維人員,經(jīng)常需要去連接這些服務器,因無法直接通過外網(wǎng)訪問,給管理造成了不便。
思路:雖然解決此問題的方法及思路有很多,但當下想使用IPTABLES的端口重定向功能解決此問題,比較簡單易用,而且擴展性也比較好,依次類推,可以運用到其他的端口轉(zhuǎn)發(fā)方面的應用。
網(wǎng)絡環(huán)境:
公網(wǎng)服務器 ? ? ?:eth0:公網(wǎng)IP??? eth1:內(nèi)網(wǎng)IP - 192.168.1.1
mysql服務器:eth1:內(nèi)網(wǎng)IP - 192.168.1.2
實現(xiàn)方法:通過訪問公網(wǎng)IP的63306端口來實現(xiàn)到內(nèi)網(wǎng)MYSQL服務器的3306端口的訪問
在公網(wǎng)服務器上:
配置腳本:
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轉(zhuǎn)發(fā)功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
使用方法:
mysql -h 公網(wǎng)IP -p 63306 -uroot -p
?
###############################################################################################
由于業(yè)務需要,服務器越來越多,內(nèi)網(wǎng)服務器無外網(wǎng)環(huán)境管理甚是不便,所以折騰了一下外網(wǎng)到內(nèi)網(wǎng)的端口轉(zhuǎn)發(fā)以達到輕松管理的目的,貼一下心得。
S1:
eth0 10.0.0.1
eth1 x.x.x.x
S2:
eth0 10.0.0.2
S1 8082端口轉(zhuǎn)發(fā)到內(nèi)網(wǎng)機器22端口
iptables規(guī)則配置如下:
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 "對外公網(wǎng)ip" -p tcp --dport "對外端口" -j DNAT --to "內(nèi)部實際提供服務的ip":"實際提供服務的端口"
iptables -t nat -A POSTROUTING -d "內(nèi)部實際提供服務的ip"-p tcp --dport "實際提供服務的端口" -j SNAT --to-source "運行iptables機器的內(nèi)網(wǎng)ip"
轉(zhuǎn)載于:https://www.cnblogs.com/zhou2019/p/10864157.html
總結(jié)
以上是生活随笔為你收集整理的linux下用iptables做本机端口转发方法(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flask-migrate数据迁移
- 下一篇: 【转】Linux开机启动管理---sys