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


12

我想做两件事:

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

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

Answers:


21

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

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

nano /etc/default/grub

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

然后启动一个grub-mkconfig来应用引导加载程序中的更改

grub-mkconfig -o /boot/grub/grub.cfg

之后,您需要重新启动


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

  • 仅作临时修改,请查看@xhienne答案。

  • 对于永久修改:

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

nano /etc/udev/rules.d/70-persistent-net.rules

并插入如下行:

# 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"

例如,如果要将名称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"

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


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


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

ip addr show

并查看链接/部分下的内容。


在官方Linux文档中哪里可以找到此信息?
vfclists

5

对于问题1),请参见user3450548的答案。对于问题2),您可以使用iproute2以下命令为接口指定任何名称:

ip link set ens33 down           # Else you will get "Device or resource busy"
ip link set ens33 name eth0

1
哦,很好,但是这不仅是下一次重新启动之前的临时更改?
user3450548

是。当然,您可以在启动脚本中添加它,但是如果您希望永久保留某些内容,则答案会更好。我没有注意到您在回答自己的问题(然后可以接受),并且在您(或其他任何人)希望出于测试目的而临时更改名称时添加了此内容。
xhienne

谢谢,这是一个很好的插件,我也会将临时解决方案也指向您的答案:)
user3450548

0

如果不存在,则创建以下文件

nano /etc/udev/rules.d/70-persistent-net.rules

在行下方添加

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

0

我发现仅更改一个非常简单的方法/etc/network/interfaces

rename enp3s0=wan0

然后

service networking restart

重新启动网络服务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.