歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

內外網ip轉發設置

  設我們有一台計算機,有兩塊網卡,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 192.168.0.2:8180 2. iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp -m tcp --dport 8180 -j SNAT 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包的源地址更該為192.168.0.1(此時是否更該連接跟蹤表中的相應條目未確認,哪位清楚的請指點),然後送到eth1接口發出. 而從192.168.0.2發回的ip包,目的地址為192.168.0.1,目的端口為1080,主機1.2.3.4的TCP/IP棧接收到該ip包後,由核心查找連接跟蹤表中的匹配項,然後將ip包的目的地址由192.168.0.1更該回原來的客戶機的ip地址6.7.8.9,保持端口號1080不變.這樣服務器的返回包就可以正確的返回發起連接的客戶機,通訊就這樣開始.




Copyright © Linux教程網 All Rights Reserved