佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 配置iptables實(shí)現(xiàn)本地端口轉(zhuǎn)發(fā)的方法詳解

配置iptables實(shí)現(xiàn)本地端口轉(zhuǎn)發(fā)的方法詳解

熱門標(biāo)簽:外呼系統(tǒng) 服務(wù)器配置 電話機(jī)器人搭建 家政服務(wù)網(wǎng)絡(luò) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 硅谷的囚徒呼叫中心 美團(tuán) 解決方案


場(chǎng)景
假如你在用 resin 調(diào)試一個(gè) Web 程序,需要頻繁地重啟 resin。這個(gè) Web 程序需要開(kāi)在 80 端口上,而 Linux 限制 1024 以下的端口必須有 root 權(quán)限才能開(kāi)啟。但是你又不愿意在調(diào)程序的時(shí)候總是開(kāi)著一個(gè) root 終端。在這種情況下,你可以把 resin 開(kāi)在默認(rèn)的 8080 端口上,然后使用 iptables 來(lái)實(shí)現(xiàn)和真的把服務(wù)開(kāi)在 80 端口上一樣的效果。
方法
將與 80 端口的 TCP 連接轉(zhuǎn)接到本地的 8080 端口上。使用 DNAT (Destination Network Address Translation) 技術(shù)可以滿足這一要求。因?yàn)?iptables 在處理本地連接和遠(yuǎn)程連接的方法不同,所以需要分開(kāi)處理。下面假設(shè)本機(jī)的 IP 是 192.168.4.177。
遠(yuǎn)程連接
遠(yuǎn)程連接指的是由另外一臺(tái)機(jī)器連接到這臺(tái)機(jī)器上。這種連接的數(shù)據(jù)包在 iptables 會(huì)首先經(jīng)過(guò) PREROUTING 鏈,所以只需在 PREROUTING 鏈中作 DNAT。

復(fù)制代碼
代碼如下:

# iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.4.177 --dport 80 -j DNAT --to 192.168.4.177:8080

本地連接
本地連接指的是在本機(jī)上,用 127.0.0.1 或者本機(jī) IP 來(lái)訪問(wèn)本機(jī)的端口。本地連接的數(shù)據(jù)包不會(huì)通過(guò)網(wǎng)卡,而是由內(nèi)核處理后直接發(fā)給本地進(jìn)程。這種數(shù)據(jù)包在 iptables 中只經(jīng)過(guò) OUTPUT 鏈,而不會(huì)經(jīng)過(guò) PREROUTING 鏈。所以需要在 OUTPUT 鏈中進(jìn)行 DNAT。除了對(duì) 127.0.0.1 之外,對(duì)本機(jī) IP (即 192.168.4.177) 的訪問(wèn)也屬于本地連接。

復(fù)制代碼
代碼如下:

# iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080
# iptables -t nat -A OUTPUT -p tcp -d 192.168.4.177 --dport 80 -j DNAT --to 127.0.0.1:8080

注意事項(xiàng)
你也許需要通過(guò)以下命令打開(kāi) IP 轉(zhuǎn)發(fā):

復(fù)制代碼
代碼如下:

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

在進(jìn)行試驗(yàn)時(shí),如果要重新設(shè)置 iptables,需要首先清空 nat 表:

復(fù)制代碼
代碼如下:

# iptables -F -t nat

實(shí)例操作
這里將本地接口IP 61.144.a.b 的3389端口 轉(zhuǎn)發(fā)到 116.6.c.d的3389      (主要訪問(wèn)到61.144.a.b的3389端口,就會(huì)跳轉(zhuǎn)到116.6.c.d的3389)
1、 首先應(yīng)該做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默認(rèn)是0    這樣允許iptalbes FORWARD。
2、 service iptables stop  關(guān)閉防火墻
3、 重新配置規(guī)則

復(fù)制代碼
代碼如下:

iptables -t nat -A PREROUTING --dst 61.144.a.b -p tcp --dport 3389 -j DNAT --to-destination 116.
6.c.d:3389
iptables -t nat -A POSTROUTING --dst 116.6.c.d -p tcp --dport 3389 -j SNAT --to-source 61.144.a.b
service iptables save

        將當(dāng)前規(guī)則保存到 /etc/sysconfig/iptables
        若你對(duì)這個(gè)文件很熟悉直接修改這里的內(nèi)容也等于命令行方式輸入規(guī)則。
5、 啟動(dòng)iptables 服務(wù), service iptables start


可以寫(xiě)進(jìn)腳本,設(shè)備啟動(dòng)自動(dòng)運(yùn)行;


復(fù)制代碼
代碼如下:

# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff./p> p>touch /var/lock/subsys/local/p> p>sh /root/myshipin.log
---------------------------------------------------------------------
vi myshipin.log
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff./p> p>iptables -F -t nat
iptables -t nat -A PREROUTING --dst 61.144.a.b -p tcp --dport 3389 -j DNAT --to-destination 116.6.c.d:3389
iptables -t nat -A POSTROUTING --dst 116.6.a.b -p tcp --dport 3389 -j SNAT --to-source 61.144.c.d
~
----------------------------------------------------------------
TCP/p> p>iptables -t nat -A PREROUTING --dst 61.144.a.b -p tcp --dport 9304 -j DNAT --to-destination 10.94.a.b:9304
iptables -t nat -A POSTROUTING --dst 10.94.a.b -p tcp --dport 9304 -j SNAT --to-source 61.144.a.b/p> p>UDP
iptables -t nat -A PREROUTING --dst 61.144.a.b -p udp --dport 9305 -j DNAT --to-destination 10.94.a.b:9305
iptables -t nat -A POSTROUTING --dst 10.94.a.b -p udp --dport 9305 -j SNAT --to-source 61.144.a.b

另:

iptables配置文件的位置:/etc/sysconfig/iptables 外網(wǎng)地址發(fā)變化在配置文件里修改就可以了。

標(biāo)簽:臨沂 防城港 北海 烏蘭察布 韶關(guān) 邢臺(tái) 南昌 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《配置iptables實(shí)現(xiàn)本地端口轉(zhuǎn)發(fā)的方法詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    全南县| 冕宁县| 桦川县| 油尖旺区| 芷江| 左贡县| 江阴市| 青田县| 禄丰县| 温州市| 牟定县| 亳州市| 屏东县| 惠安县| 阳谷县| 安宁市| 宁河县| 河南省| 胶南市| 中西区| 林芝县| 石门县| 毕节市| 信宜市| 宁波市| 阜平县| 长寿区| 阿拉善右旗| 莱阳市| 静海县| 阳东县| 金坛市| 田林县| 乾安县| 汝南县| 秦皇岛市| 兴仁县| 石家庄市| 汾西县| 永济市| 河津市|