网络接口之间的切换

网络接口之间的切换

我正在尝试编写脚本来在 Linux 机器上的两个接口 wlan0 和 eth0 之间切换。

我的主要参考是: https://askubuntu.com/questions/338100/forwarding-traffic- Between-2-interfaces

-A FORWARD -i eth0 -o wlan0 -j ACCEPT

我的问题是,执行上述命令后,原始数据包是否仍然流经eth0?如果是,如何阻止它们并只让它们流过 wlan0?

当我想切换回 eth0(并将 wlan0 转发到 eth0)时,该怎么办?

最后,如何放弃所有规则并恢复正常?

谢谢。

答案1

如果您想通过不同的接口路由出去,请忽略防火墙(您找到的解决方案是针对完全不同的要求)。相反,请查看路由表。

该命令netstat -rn将向您显示接受给定目的地的接口。该命令route可用于修改路由表,包括定义流量的默认网关。

这是路由表的示例

netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.2.254   0.0.0.0         UG        0 0          0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
224.0.0.0       0.0.0.0         240.0.0.0       U         0 0          0 eth1

这表明 LAN 子网 192.168.1.0/24 的流量将使用eth0,并且 192.168.2.0/24 将使用eth1。所有其他流量将使用“默认网关”(目标 0.0.0.0),即eth1。您的界面可以轻松地是eth0wlan0;这并不重要。

将默认网关从 切换eth1eth0,并假设该系统的本地 IP 地址为 192.168.1.254eth1和 192.168.2.254 eth0

route delete default gw 192.168.2.254
route add default gw 192.168.1.254

相关内容