服務器指南文檔
IP Masquerading的目的是允許網絡上具有私有的,不可路由的IP地址的計算機通過偽裝的機器訪問Internet。 來自您的專用網絡的目的地為互聯網的流量必須被處理,以使回复可路由回發出請求的機器。 為此,內核必須修改每個數據包的源 IP地址,以便將回复路由回給它,而不是通過發送請求的私有IP地址,這在互聯網上是不可能的。 Linux使用連接跟踪 (conntrack)來跟踪哪些連接屬於哪些機器並相應地重新路由每個返回數據包。 因此,離開你的私人網絡的流量被“偽裝”成源於你的Ubuntu網關機器。 此過程在Microsoft文檔中稱為Internet連接共享。
IP偽裝說明
這可以通過一個iptables規則來完成,根據您的網絡配置,該規則可能會略有不同:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE上述命令假定您的私有地址空間是192.168.0.0/16,並且您的面向Internet的設備是ppp0。 語法分解如下:
- -t nat - 規則是進入nat表
- -A POSTROUTING - 將規則附加到(-A)到POSTROUTING鏈
- -s 192.168.0.0/16 - 該規則適用於源自指定地址空間的流量
- -o ppp0 - 該規則適用於計劃通過指定網絡設備路由的流量
- -j MASQUERADE - 與此規則匹配的流量將“跳躍”(-j)到MASQUERADE目標,以便如上所述進行操縱
過濾器表中的每個鏈(默認表以及大部分或全部數據包過濾發生處)都具有默認的ACCEPT 策略 ,但如果除了網關設備之外還要創建防火牆,則可能已將策略設置為DROP或REJECT,在這種情況下,您的偽裝流量需要通過FORWARD鏈來允許上述規則的工作:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT上述命令將允許從本地網絡到Internet的所有連接以及與這些連接相關的所有流量返回到啟動它們的機器。
* 許可證