Linux

Intranet 通過具有 2 個網路介面的主機到 Internet,使用無線介面

  • December 10, 2016

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

引用自:https://serverfault.com/questions/819974