基本上,我的網路看起來像這樣
+------+
10.0.0.10 ------ 10.0.0.1=|Laptop|=11.0.0.11 ------ 11.0.0.1
(wlan0,client) (AP,wlan0)+------+(wlan1,client) (AP)
wlan0 和 wlan1 是連接到筆記型電腦的 USB Wi-Fi 轉接器
我想透過我的筆記型電腦連接這些網絡,起初我嘗試過橋接,但事實證明,不支援橋接
我已經嘗試過這個但沒有成功。
iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
我將不勝感激任何幫助。
答案1
您不需要兩個偽裝規則。您只需要偽裝一個客戶端,該客戶端將您的電腦作為預設路由;您將來源 NAT 套用於離開「WAN」側介面的封包。
如果防火牆處於預設狀態,您只需要這條規則:
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
如果不同網路上的 MTU 不同,您可能需要套用 MSS 修復:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
(這有助於解決諸如“ping 有效,網站不起作用”或“某些網站起作用,其他網站不起作用”之類的問題)。
有一個極為常見的問題。我這樣做了大約 20 年,但仍然經常忘記這一點,直到一切都應該有效,但有些卻不起作用。您需要在核心中明確啟用資料包轉送:
sysctl net.ipv4.ip_forward=1
並將相同的變數設定/etc/sysctl.conf
為在啟動後啟用。