iptables實現埠轉發的過程(修改版)(轉)
iptables實現埠轉發的過程(修改版)(轉)[@more@]看了不少關於用iptables實現埠轉發的文章,但感覺都沒有把問題說得很清楚,現接合我自己設定和使用的經歷,談談它的實現過程.設我們有一臺計算機,有兩塊網路卡,eth0連外網,ip為1.2.3.4;eth1連內網,ip為192.168.0.1.現在需要把發往地址1.2.3.4的81埠的ip包轉發到ip地址192.168.0.2的8180埠,設定如下:1. iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp -m tcp --dport 81 -j DNAT --to-destination192.168.0.2:81802. iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.0.0 -d 192.168.0.2 -p tcp -m tcp --dport 8180 -j SNAT --to-source 192.168.0.1真實的傳輸過程如下所示:假設某客戶機的ip地址為6.7.8.9,它使用本機的1080埠連線1.2.3.4的81埠,發出的ip包源地址為6.7.8.9,源埠為1080,目的地址為1.2.3.4,目的埠為81.主機1.2.3.4接收到這個包後,根據nat表的第一條規則,將該ip包的目的地址更該為192.168.0.2,目的埠更該為8180,同時在連線跟蹤表中建立一個條目,(可從/proc/net/ip_conntrack檔案中看到),然後傳送到路由模組,透過查路由表,確定該ip包應傳送到eth1介面.在向eth1介面傳送該ip包之前,根據nat表的第二條規則,如果該ip包來自同一子網,則將該ip包的源地址更該為 192.168.0.1,同時更新該連線跟蹤表中的相應條目,然後送到eth1介面發出.此時連線跟蹤表中有一項:連線進入: src=6.7.8.9 dst=1.2.3.4 sport=1080 dport=81連線返回: src=192.168.0.2 dst=6.7.8.9 sport=8180 dport=1080是否使用: use=1而從192.168.0.2發回的ip包,源埠為8180,目的地址為6.7.8.9,目的埠為1080,主機1.2.3.4的TCP/IP棧接收到該ip包後,由核心查詢連線跟蹤表中的連線返回欄目中是否有同樣源和目的地址和埠的匹配項,找到後,根據條目中的記錄將ip包的源地址由 192.168.0.2更該為1.2.3.4, 源埠由8180更該為81,保持目的埠號1080不變.這樣伺服器的返回包就可以正確的返回發起連線的客戶機,通訊就這樣開始.還有一點, 在filter表中還應該允許從eth0連線192.168.0.2地址的8180埠:iptables -A INPUT -d 192.168.0.2 -p tcp -m tcp --dport 8180 -i eth0 -j ACCEP
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iptables 配置埠及轉發
- Linux IPTABLES埠轉發Linux
- iptables之NAT埠轉發設定
- 使用iptables實現資料包過濾(轉)
- 80埠入侵 CGI掃描器的原理和實現過程(轉)
- 用iptables實現NAT(轉)
- 用 IPTABLES 的埠轉發功能實現訪問位於內網的 MySQL 伺服器內網MySql伺服器
- iptables 實現埠對映
- 實現埠對埠的聊天 (轉)
- Linux iptables實現nat轉發操作步驟Linux
- lcx iptables rinetd 三個埠轉發流量分析
- 3、使用Windows命令來實現埠轉發Windows
- 伺服器實現埠轉發的N種方式伺服器
- 在Java中實現回撥過程 (轉)Java
- 1、實戰SSH埠轉發
- 利用nginx的stream模組實現內網埠的轉發代理Nginx內網
- IT成本管理的實施過程(轉)
- 玩轉SSH埠轉發
- 使用儲存過程實現分頁列印 (轉)儲存過程
- MySql特性發展過程(轉)MySql
- 埠轉發方法
- SSH 埠轉發
- SSH埠轉發
- 利用iptables實現埠對映(支援動態域名)
- 軟體過程的發展的思考 (轉)
- 設定 SSH 隧道(埠轉發)實戰
- 關於埠轉發
- mysql5中使用過程實現行轉列MySql
- 內網中的埠轉發內網
- 教你幾行程式碼實現全平臺埠資料的轉發行程
- C++Builder下實現埠讀寫 (轉)C++UI
- iptables 入門(轉)
- IPTables配置Script(轉)
- Nginx支援Socket轉發過程詳解Nginx
- 轉發和重定向的過程和區別
- 談軟體開發過程的改進 (轉)
- 什麼是SSH埠轉發(本地轉發、遠端轉發、動態轉發)?
- SSH遠端埠轉發實戰詳解