Ubuntu

一次只能調出一個界面

  • September 18, 2017

我看了最相關的問題,並且更進一步,但不確定從這裡去哪裡。

我目前正在嘗試連接兩個乙太網介面,但無法同時建立與兩個介面的連接。當我連接第二個介面時,enx000acd2f045eenp0s31f6與 Internet 的連接斷開了。與引用的答案不同,當我執行時,我的兩個網路都沒有被禁用sudo lshw -c network

$ sudo lshw -c network
[sudo] password for maxgitt: 
 *-network               
      description: Ethernet interface
      product: Ethernet Connection (5) I219-LM
      vendor: Intel Corporation
      physical id: 1f.6
      bus info: pci@0000:00:1f.6
      logical name: enp0s31f6
      version: 00
      serial: 50:9a:4c:18:ad:9f
      size: 1Gbit/s
      capacity: 1Gbit/s
      width: 32 bits
      clock: 33MHz
      capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
      configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.1-4 ip=130.207.34.53 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
      resources: irq:138 memory:f7100000-f711ffff
 *-network
      description: Ethernet interface
      physical id: 1
      bus info: usb@2:3.1
      logical name: enx000acd2f045e
      serial: 00:0a:cd:2f:04:5e
      size: 1Gbit/s
      capacity: 1Gbit/s
      capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
      configuration: autonegotiation=on broadcast=yes driver=ax88179_178a duplex=full ip=192.168.3.4 link=yes multicast=yes port=MII speed=1Gbit/s

答案確實提到了檢查我的路由表,說明我不能擁有多個網關。所以我執行了以下內容:

在連接到之前enx000

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         130.207.34.1    0.0.0.0         UG    100    0        0 enp0s31f6
130.207.34.0    0.0.0.0         255.255.255.0   U     100    0        0 enp0s31f6
143.215.251.5   130.207.34.1    255.255.255.255 UGH   100    0        0 enp0s31f6
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp0s31f6

連接到後enx000

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.3     0.0.0.0         UG    0      0        0 enx000acd2f045e
0.0.0.0         130.207.34.1    0.0.0.0         UG    100    0        0 enp0s31f6
130.207.34.0    0.0.0.0         255.255.255.0   U     100    0        0 enp0s31f6
143.215.251.5   130.207.34.1    255.255.255.255 UGH   100    0        0 enp0s31f6
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp0s31f6
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 enx000acd2f045e

最後,他說“如果你有兩個網關,你的路由表會有一個 dest 0.0.0.0 的雙重條目,系統無法處理這個問題。” 我對網路比較陌生,不確定我能做些什麼來解決這個問題。看來我的路由表的前兩行可能有衝突。

  • 我應該更新:

    • 在 Ubuntu 的網路菜單中找到的預設網關或
    • 編輯/etc/network/interfaces,這在最近版本的 Ubuntu 中似乎並沒有被太多使用,更不用說 16.04

您引用的答案指出了問題所在 - 它位於路由表中。發生的事情是您創建了兩個“預設路由”(0.0.0.0 路由)。如果沒有找到其他路由,則這是匹配的路由,因此是預設名稱。

在您的情況下,一旦第二個介面啟動,您可以看到兩個預設路由,系統使用第一個匹配的路由,因此使用 enxXXX 適配器。

說你不能有兩條預設路由很簡單,因為一切皆有可能,你可以在兩者之間平衡流量,但出於您的目的,您似乎實際上只想使用原始 enpXXX 介面來處理您的 Internet 流量?並且只有 LAN 流量通過另一個介面?

這很容易實現 - 您需要禁用 enxXXX 適配器作為預設路由(這將添加到 LAN 但不會添加到世界 0.0.0.0 的路由)或設置路由順序,以便 enpXXX 介面在路由表中排在第一位.

這裡有一個關於如何在 Ubuntu 中使用多個 NIC 的很好的描述:https ://askubuntu.com/questions/310355/networking-with-multiple-nics

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