Linux未知的介面 eth0,即使
未知的介面 eth0,即使 ethtool eth0
顯示資訊
我在虛擬機 (VM) 上執行 kali linux。今天啟動機器,發現eth0介面不見了。
所以我嘗試
ifup eth0
啟動它,但得到了輸出:unknown interface eth0
.但是如果我執行
ethtool eth0
然後我得到這個輸出:Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: no
這個錯誤的原因是,在這裡,
eth0
意味著兩個不同的東西:
- 實際的介面名稱,如核心、iproute2工具、ethtool、dhclient等確實存在的,
- 或者ifupdown工具中的介面配置,指向實際的介面名稱。在這裡,如果從未在配置中定義,則ifup不知道:這是錯誤消息。
eth0
重現此錯誤的簡單方法:
# ip link add name veth5 type veth peer name veth6 # ethtool veth5 Settings for veth5: Supported ports: [ ] [...] Link detected: no # ifup veth5 ifup: unknown interface veth5
所以介面沒有失去。ifupdown工具尚未配置為使用它。
對於您的情況,您可以在末尾添加
/etc/network/interfaces
(或在單獨的文件中,例如/etc/network/interfaces.d/eth0
,如果interfaces
文件在其配置中包含interfaces.d
目錄)這兩行:auto eth0 iface eth0 inet dhcp
讓ifupdown工具等
ifup
命令知道它並在啟動時使用 DHCP 對其進行配置。我不知道為什麼以前沒有這樣做。在我之前的假範例中,我添加了 likewise
veth5
的定義(在 Debian 9 上):# ifup -a Internet Systems Consortium DHCP Client 4.3.5 Copyright 2004-2016 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/veth5/1e:96:59:c3:e4:0c Sending on LPF/veth5/1e:96:59:c3:e4:0c Sending on Socket/fallback DHCPDISCOVER on veth5 to 255.255.255.255 port 67 interval 8