linux

如何通过ifconfig修改网卡名称

小樊
44
2025-05-24 10:35:26
栏目: 编程语言

在Linux系统中,ifconfig命令主要用于配置、激活和查询网络接口参数,但它不能直接用来修改网卡名称。要修改网卡名称,你需要编辑/etc/udev/rules.d/目录下的规则文件。以下是具体步骤:

  1. 首先,关闭NetworkManager服务,因为我们在修改网卡名称时需要确保NetworkManager不会干扰这个过程。在终端中输入以下命令:
sudo systemctl stop NetworkManager
  1. 确保udev服务正在运行:
sudo systemctl start udev
  1. 找出你想要修改名称的网卡的MAC地址。你可以使用ip linkifconfig -a命令来查看网卡的MAC地址。例如:
ip link

输出示例:

1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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

  1. 创建一个新的udev规则文件,例如/etc/udev/rules.d/70-persistent-net.rules(数字可以根据需要调整,只要确保它在70-persistent-net.rules之前):
sudo nano /etc/udev/rules.d/70-persistent-net.rules
  1. 在新创建的规则文件中,添加以下内容(用实际的网卡名称和MAC地址替换INTERFACE_NAMEMAC_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"
  1. 保存并关闭文件。

  2. 重启udev服务以应用更改:

sudo udevadm control --reload-rules && sudo udevadm trigger
  1. 重启系统:
sudo reboot

现在,系统启动后,网卡名称应该已经根据你在udev规则文件中指定的名称进行了更改。请注意,这些步骤适用于基于Debian的系统(如Ubuntu)。对于基于RPM的系统(如Fedora、CentOS等),步骤可能略有不同。

0
看了该问题的人还看了