通过具有 2 个网络接口的主机(使用无线接口)将内联网连接到互联网

通过具有 2 个网络接口的主机(使用无线接口)将内联网连接到互联网

主机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使用android接入点成功接入互联网。

主机_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 路由器交换接口的同一物理网络上。

如果有人知道哪里出了问题,我将不胜感激。

前 期望之后

答案1

您应该在 Host_A 中启用 NAT,告诉它通过 wlan0 路由数据包,这应该可以解决问题:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

相关内容