Linux
Intranet 通過具有 2 個網路介面的主機到 Internet,使用無線介面
Host_A
eth0:192.168.1.3
wlan0:192.168.43.84
兩個介面都可以訪問網際網路。eth0 通過 DSL 路由器 192.168.1.1 和 wlan0 通過 android 接入點 192.168.43.1。預設網關是 192.168.1.1,但我可以使用以下命令以 root 身份輕鬆切換到另一個網關:
ip route delete default ip route add default via 192.168.43.1
之後,Host_A 成功使用安卓接入點上網。
Host_B
eth0:192.168.1.14
這通過 DSL 路由器 192.168.1.1 進入網際網路。我希望它通過無線接入點出去,這實際上意味著它應該通過 192.168.1.3。為此,我做了以下
ip route delete default ip route add default via 192.168.1.3
我還使用以下方法在 Host_A 中啟用了數據包轉發:
sysctl -w net.ipv4.ip_forward=1
之後, cat /proc/sys/net/ipv4/ip_forward 返回 1
問題是,Host_B 無法上網。我想讓 Host_B 通過 Host_A wlan0 介面進行網際網路連接。兩台主機上的防火牆都被禁用,我的信念是我不應該為了實現這一點而使用 iptables。兩台主機都是 Debian。Host_A 和 Host_B 位於使用 DSL 路由器交換介面的同一物理網路上。
如果有人知道可能出了什麼問題,我將不勝感激。
您應該在 Host_A 中啟用 NAT,告訴它通過 wlan0 路由數據包,這應該可以解決問題:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE