一次只能調出一個界面
我看了最相關的問題,並且更進一步,但不確定從這裡去哪裡。
我目前正在嘗試連接兩個乙太網介面,但無法同時建立與兩個介面的連接。當我連接第二個介面時,
enx000acd2f045e
我enp0s31f6
與 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