如何在 debian 9 stretch 中显示旧的 eth0 名称并重命名网络接口?

use*_*548 15 networking debian network-interface

我想做两件事:

1) 将接口恢复为旧的经典名称:eth0 而不是 ens33。

2)以我想要的方式重命名接口,例如,我可以将接口 eth0 称为 wan0 或分配 eth1、eth2 等我想要的 mac 地址。

use*_*548 26

假设您刚刚安装了 debian 9 stretch。

1) 要恢复接口的旧名称,请执行以下操作:

nano /etc/default/grub
Run Code Online (Sandbox Code Playgroud)

将该行编辑GRUB_CMDLINE_LINUX=""GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

然后启动grub-mkconfig以应用引导加载程序内的更改

grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)

之后您需要重新启动


2) 要重命名接口,请使用:

  • 对于临时修改,请查看@xhienne 的答案。

  • 对于永久修改:

首先创建/编辑/etc/udev/rules.d/70-persistent-net.rules文件。

nano /etc/udev/rules.d/70-persistent-net.rules
Run Code Online (Sandbox Code Playgroud)

并插入内行,如:

# interface with MAC address "00:0c:30:50:48:a1" will be assigned "eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:30:50:48:a1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# interface with MAC address "00:0c:30:50:48:ab" will be assigned "eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:30:50:48:ab", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Run Code Online (Sandbox Code Playgroud)

例如,如果您想将 wan0 之类的名称分配给 eth0,您可以使用我的示例:

# interface with MAC address "00:0c:30:50:48:a1" will be assigned "eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:30:50:48:a1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wan0"
Run Code Online (Sandbox Code Playgroud)

下次重新启动或使用服务网络重新启动后,您应该会看到已应用的更改。


额外:请记住,在所有这些修改之后,您必须编辑/etc/network/interfaces文件,用新的接口名称替换旧的接口名称!


额外:如果您想知道您的接口的 MAC 地址是什么,只需执行

ip addr show
Run Code Online (Sandbox Code Playgroud)

并查看链接/部分。

  • 对于 debian,可以在此处找到 https://wiki.debian.org/NetworkInterfaceNames,并且 debian 不需要 biosdevname=0,而仅适用于旧的 RedHat 和其他一些发行版。 (2认同)

xhi*_*nne 6

对于问题 1),请参阅user3450548 的回答。对于问题 2),您可以为接口指定任何名称iproute2

ip link set ens33 down           # Else you will get "Device or resource busy"
ip link set ens33 name eth0
Run Code Online (Sandbox Code Playgroud)