无需 Udev/重启即可永久重命名 Linux 网络接口

无需 Udev/重启即可永久重命名 Linux 网络接口

基于: http://kernelpanik.net/rename-a-linux-network-interface-without-udev/

我们可以使用以下方法轻松更改接口的名称:

ifconfig peth0 down  
ip link set peth0 name eth0  
ifconfig eth0 up

我们如何使用上述方式在启动时做到这一点?

在 /etc/network/interfaces 或任何其他文件中?

答案1

感谢 netplan(ubuntu 18.04 中的默认设置),现在这变得特别容易。您可以根据 macaddress 或驱动程序设置接口名称:

编辑现有的 .yaml配置文件在 /etc/netplan/ 中或创建一个新的:

sudo nano /etc/netplan/config.yaml

以下是 MAC 地址匹配的示例。名称用 'set-name' 设置,并与接口的 MAC 地址匹配:

network:
  ethernets:
    wan:
      match:
        macaddress: 00:ab:cd:ef:12:34
      addresses: 
        - 10.5.1.2/16
      dhcp4: true
      optional: true
      set-name: wan0
    lan:
      match:
        macaddress: 00:ab:cd:ef:12:45
      addresses: 
        - 10.6.1.1/16
      optional: true
      set-name: eth0
  version: 2

保存 .yaml 文件并使用以下命令应用配置:

sudo netplan apply

可能需要重新启动才能应用名称更改。

答案2

了解ip命令很好,但是可以使用现有脚本进行配置,当然还有 udev。

您可以做的一件事是将特定 MAC 地址的 NIC 映射到名称。将类似以下内容附加到 /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"

答案3

从 2021 年起,人们已经不再使用 udev 规则(尽管它们仍然运行良好),而是转向在 systemd 中执行,以将所有网络配置集中在一个地方。

要设置持久网络设备,请创建/etc/systemd/network/10-eth0.link 以下内容。文件名必须以数字开头并以数字结尾,.link但其余部分并不重要,由您决定。您需要为每个要重命名的网络接口创建一个文件。

[Match]
# This is the MAC address of the card to change.  You can also
# match against other properties like PCI/USB slot.
MACAddress=00:11:22:33:44:55

[Link]
# This is the name to assign.  It must not conflict with any existing
# device, so be careful if you use a name like eth0 which can fail
# unexpectedly if you plug in another device that ends up on eth0 first.
Name=lan0

# You can also change the MAC address at the same time if you like.
# Make sure you follow the MAC address numbering rules or you can run
# into problems, e.g. if you assign a broadcast MAC address by mistake.
MACAddress=02:00:00:00:00:10

在撰写本文时,systemd 不会.link在系统启动并运行后重新应用文件(即使您重新启动systemd-networkd),因此您需要重新启动以确认它可以成功应用更改。

相关内容