Linux

如何讓 2 個網際網路連接正常工作

  • August 18, 2019

要麼我對介面應該如何工作有根本的誤解,要麼我做了一些奇怪的錯誤。

我有兩個介面:

  • eno1: 10.6.59.203/24 (gateway 10.6.59.1)
  • eno2: 192.168.5.100/24 (gateway 192.168.5.1)

如果我拔下一根電纜並重新啟動,不管電纜如何,它都會有網際網路。

但是,如果我將它們都插入,則只有一個介面可以工作(預設為eno2)。例如:

ping google.com -I eno2   # works
ping google.com -I eno1   # hangs forever

如何使上述兩個語句起作用?

我的 /etc/network/interface

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug eno2
iface eno2 inet dhcp

allow-hotplug eno1
iface eno1 inet dhcp

我的route

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.5.1     0.0.0.0         UG    0      0        0 eno2
10.6.59.0       0.0.0.0         255.255.255.0   U     0      0        0 eno1
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eno2

更新

我發現解決這個問題的方法是route add default gw 10.6.59.1 eno1. 但是,如何在啟動時正確執行此操作(可能僅通過編輯 /etc/network/interfaces)。

此外,既然我有 2 個預設目的地,那麼 linux 怎麼知道預設使用哪一個?

您只有一個預設網關,因此傳出數據包將僅通過該網關發送;如果您希望能夠同時使用這兩個連接,則需要0.0.0.0使用另一個介面的網關手動添加另一個預設網關(即到 的路由)。

但請注意,這不會同時使用兩個連接;這是不可能的。將始終使用其中一個連接,僅在主連接失敗時才使用另一個連接;首選路由由“metric”參數定義。

引用自:https://serverfault.com/questions/979742