获取接口标志时出现 eth0 错误:没有这样的设备

获取接口标志时出现 eth0 错误:没有这样的设备

我打开了一个终端,macchanger通过进行安装sudo apt-get install -y macchanger,然后输入了我的密码。它显示这macchanger已经是最新版本,所以我输入clear并运行:

sudo ifconfig eth0 down

这时出现了以下错误信息:

eth0 ERROR while getting interface flags: no such device

这是一台笔记本电脑,我通过以太网电缆连接。

我该如何解决这个问题以便可以运行macchanger


所以我用过ifconfig -a,但我正在寻找,但没有看到提及 eth0

从上到下显示的接口分别是:

enp58s0f1
lo
tun0
UNSPEC
wlp59s0

唯一与以太网相关的是 MAC 地址,还有txqueuelen

这有助于我弄清楚需要做什么来解决这个问题吗?

答案1

根据您的ifconfig -a输出,enp58s0f1是您的以太网,而不是eth0

当 Ubuntu 切换到 systemd(在 Ubuntu 15.04 中)时,它从旧系统切换到eth0所谓的可预测的网络接口名称。以太网接口以 开头en(所以您的是enp58s0f1)。无线接口以 开头wl

答案2

首先,阅读手册。

man ifconfig

然后,您就会明白 ifconfig 的作用。此外,ifconfig 被认为是一个已弃用的工具(但我仍在使用它,它很方便,因为它熟悉且易于使用)。

ifconfig -a

将显示所有接口。

ip address # will also display similar information.

您可能需要在谷歌上搜索一些基本的网络命令以及它们的工作原理。激光多普勒超声诊断仪对 Linux 中一些最常见的网络命令进行了简要概述。

我的 arch 系统配置为提供较旧的接口名称,但较新的名称(由 ubuntu 自动配置)提供较新的(更复杂、更难记住和输入)信息。

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.254.3/24 brd 192.168.254.255 scope global dynamic wlan0
       valid_lft 82688sec preferred_lft 82688sec
    inet6 f::f:f:f:f/64 scope link 
       valid_lft forever preferred_lft forever

您可以看到我有 3 个接口,lo(用于环回)、eth0(用于以太网)和wlan0(用于无线)。如果您没有使用正确的接口名称,那么它将无法工作。

如果接口已关闭,则以下命令将启动该接口。Ubuntu 服务器指南有一些关于如何完成配置、关闭接口以及备份的详细信息。

sudo ip link set eth0 up

答案3

网络接口可能有其他名称,因为当从网络设备的名称中部分取出 1-2 位数字pci number以生成特定名称时,将启用重命名模式。这样做是为了使网络设备的名称不会通过新适配器连接到机器。因此,eth0 可以称为 enp2s1 或 ens1,甚至 eng78e7d1er12ds

要禁用重命名:

sudo nano /etc/default/grub

替换以下行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

内容如下:

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0"

然后使用以下命令更新 GRUB:

sudo update-grub && sudo reboot

检查您当前的设置:

ifconfig

结果,我得到(取决于您安装的网卡数量):

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    ether 00:w0:4c:u6:97:11  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.0.2  netmask 255.255.255.0  broadcast 192.168.0.255
    inet6 fe80::c93e:6718:72e9:4423  prefixlen 64  scopeid 0x20<link>
    ether 00:0a:5r:c2:21:70  txqueuelen 1000  (Ethernet)
    RX packets 376  bytes 467372 (467.3 KB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 398  bytes 41048 (41.0 KB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 1000  (Local Loopback)
    RX packets 137  bytes 11110 (11.1 KB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 137  bytes 11110 (11.1 KB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

相关内容