基于: 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
),因此您需要重新启动以确认它可以成功应用更改。