网络接口首选项

Dom*_*ore 9 linux networking routing

当两者都连接到同一网络时,Linux 如何确定使用哪个网络接口?

请注意,这不是关于路由的问题。我熟悉它的工作原理。例如,如果我的笔记本电脑通过以太网卡和无线网卡连接到无线路由器,或者如果我有两个以太网卡都连接到同一路由器。

我可以从经验中说,在我的情况下,我的笔记本电脑似乎更喜欢以太网卡(eth0)而不是无线(eth1--我知道这不是无线接口的典型名称,但这就是我所拥有的),但我是想知道,它是如何决定的?如果它只是从编号最低的接口中选择,如果这两个选择是 eth0 和 wlan0 呢?

编辑:@Nils 指出这仍然是路由问题,路由表提供了答案(请参阅他的答案)。这仍然留下我最初的问题,但形式不同。什么决定了 Linux 路由表中条目的顺序?例如,这是我连接到两个接口时的路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
Run Code Online (Sandbox Code Playgroud)

很明显,对于本地网络中的目的地,表中 eth0 的优先级高于 eth1,但在 Linux 中,这是根据链接延迟、链接吞吐量、甚至接口名称还是什么决定的?(同样的问题可能会问为什么 eth0 是默认路由的接口。)

Nil*_*ils 7

嗯 - 这是一个路由问题。

答案很简单:提供最佳路由条目的第一个条目是“赢家”。所以netstat -rn先看看哪个接口。

更新: network-inferface-routing-settings 通常在系统启动期间设置。所以网络设备的启动顺序将是该表中的顺序。对于 PCI 设备,这些通常首先由最低插槽号处理。外部设备(例如 USB)通常稍后出现。

但确切的顺序取决于您的 Linux 风格的网络启动脚本(这是它们非常不同的地方)。

BTW:如果你想利用你的两个链接,你应该去绑定。您可以在那里设置链接的使用顺序。