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

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成功使用Android接入点访问互联网。

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_A wlan0接口让Host_B具有互联网连接。 防火墙在两台主机上都是禁用的,我的信念是我不应该为了达到这个目的而乱搞iptables。 这两个主机都是Debian。 Host_A和Host_B使用DSL路由器交换接口在同一物理networking上。

如果有人有什么想法可能是错的,我会被迫的。

之前 希望之后

您应该启用Host_A NAT,告诉它路由数据包throutgh wlan0,这应该做的伎俩:

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