如何在 Linux 中永久更改网络接口名称
问题:我想将 Linux 上的网络接口名称(例如
eth0
)更改为其他名称。在 Linux 上重命名网络接口的正确方法是什么?
在 Linux 中,设备名称管理由 udev 系统处理。当 Linux 内核发现系统中添加了新设备(例如网络接口卡)时,它会将设备事件通知 udev
守护进程。然后,udev
守护进程将根据一组规则匹配各种设备属性,以识别设备、为其命名并将其信息存储在 udev
数据库中。
对于网络设备,udev
依赖 MAC 地址为设备分配永久名称。基于 MAC 地址的命名规则存储在 /etc/udev/rules.d/70-persistent-net.rules
中。
为了更改网络设备名称,您可以编辑 /etc/udev/rules.d/70-persistent-net.rules
。如果没有这样的文件,您可以自己创建一个。
在 /etc/udev/rules.d/70-persistent-net.rules
中,您可以将任意设备名称分配给特定的 MAC 地址。因此,首先找出网络接口的 MAC 地址,然后按以下格式将接口名称定义为该 MAC 地址。
$ sudo vi /etc/udev/rules.d/70-persistent-net.rules
# interface with MAC address "00:0c:29:43:28:11" will be assigned "eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:43:28:11", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# interface with MAC address "00:0c:29:43:28:1b" will be assigned "eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:43:28:1b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
编辑 /etc/udev/rules.d/70-persistent-net.rules
后,重新启动计算机以激活接口名称更改。
