在Linux系统中,ifconfig
命令主要用于配置、激活和查询网络接口参数,但它不能直接用来修改网卡名称。要修改网卡名称,你需要编辑/etc/udev/rules.d/
目录下的规则文件。以下是具体步骤:
- 首先,关闭NetworkManager服务,因为我们在修改网卡名称时需要确保NetworkManager不会干扰这个过程。在终端中输入以下命令:
sudo systemctl stop NetworkManager
- 确保udev服务正在运行:
sudo systemctl start udev
- 找出你想要修改名称的网卡的MAC地址。你可以使用
ip link
或ifconfig -a
命令来查看网卡的MAC地址。例如:
ip link
输出示例:
1: lo:mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:1c:42:00:00:08 brd ff:ff:ff:ff:ff:ff
在这个例子中,网卡名称是eth0
,MAC地址是00:1c:42:00:00:08
。
- 创建一个新的udev规则文件,例如
/etc/udev/rules.d/70-persistent-net.rules
(数字可以根据需要调整,只要确保它在70-persistent-net.rules
之前):
sudo nano /etc/udev/rules.d/70-persistent-net.rules
- 在新创建的规则文件中,添加以下内容(用实际的网卡名称和MAC地址替换
INTERFACE_NAME
和MAC_ADDRESS
):
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC_ADDRESS", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="INTERFACE_NAME"
例如:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1c:42:00:00:08", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
-
保存并关闭文件。
-
重启udev服务以应用更改:
sudo udevadm control --reload-rules && sudo udevadm trigger
- 重启系统:
sudo reboot
现在,系统启动后,网卡名称应该已经根据你在udev规则文件中指定的名称进行了更改。请注意,这些步骤适用于基于Debian的系统(如Ubuntu)。对于基于RPM的系统(如Fedora、CentOS等),步骤可能略有不同。