尽管“ethtool eth0”显示信息,但接口 eth0 未知

尽管“ethtool eth0”显示信息,但接口 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

答案1

这个错误的原因是,在这里,eth0意味着两个不同的事情:

  • 内核看到的实际接口名称,ip路由2工具,以太网工具,dhclient等确实存在,

  • 或者界面配置在如果向上向下工具,指向实际的接口名称。在这里,如果eth0从未在配置中定义过,那么它是未知的通过 ifup: 这是错误信息。

    重现此错误的简单方法:

    # 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
    

所以接口并没有丢失。这如果向上向下工具尚未配置为使用它。

对于您的情况,您可以在末尾添加/etc/network/interfaces(或在单独的文件中添加,例如,/etc/network/interfaces.d/eth0如果interfaces文件在其配置中包含interfaces.d目录)以下两行:

auto eth0
iface eth0 inet dhcp

为了拥有如果向上向下工具,因此该ifup命令了解它并在启动时使用 DHCP 配置它。我不知道为什么以前没有这样做。

在我之前的假示例中,我添加了同样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

答案2

我通过执行命令解决了这个问题dhclient

dhclient - 动态主机配置协议客户端

Internet 系统联盟 DHCP 客户端 dhclient 提供了一种使用动态主机配置协议、BOOTP 协议配置一个或多个网络接口的方法,或者如果这些协议失败,则通过静态分配地址来配置一个或多个网络接口。

...

dhclient 应尝试配置的网络接口的名称可以在命令行上指定。如果命令行中未指定接口名称dhclient 通常会识别所有网络接口,如果可能的话消除非广播接口,并尝试配置每个接口。

相关内容