多个网络连接,流量通过哪里路由?

多个网络连接,流量通过哪里路由?

我的 ThinkPad 有两个网络接口,一个有线,一个无线。两个接口都可以连接到路由器,再由路由器连接到互联网。

如果两个接口都连接,那么两个接口是同时使用还是每次只使用一个。如何知道使用的是哪个接口?

答案1

网络接口有一个“metric”值。如果多个接口可以到达网关,则将使用metric最小的接口。

您可以尝试netstat -r在命令行中输入内容来查看它。 ifconfig还将提供每个接口的度量。

答案2

我使用网络管理器激活了有线 eth0 和 wifi eth2(均为 dhcp):

$ 路线-n
内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 2 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

tcpdump -n -i eth0显示交通状况,而 则不tcpdump -n -i eth2显示。

因此让我们尝试重新排序路由表中的接口:

sudo route del -net 192.168.1.0/24 dev eth2
sudo route add-net 192.168.1.0/24 dev eth2
sudo route -n 添加默认网关 192.168.1.1 dev eth2

现在路由表是:

内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

现在 tcpdump 显示通过 eth2 接口的所有流量。

相关内容