Linux系统修改网卡名为eth0、eth1

举报
Raymond运维 发表于 2025/09/05 20:11:54 2025/09/05
【摘要】 Linux系统修改网卡名为eth0、eth1

Linux系统修改网卡名为eth0、eth1

在Linux中,可以通过以下步骤将网卡名修改为 eth0eth1 等传统命名方式:

方法一:通过修改 GRUB 配置和创建 Udev 规则

1. 修改 GRUB 配置文件: 打开 /etc/default/grub 文件,添加以下内容到 GRUB_CMDLINE_LINUX 行:

net.ifnames=0 biosdevname=0

执行以下命令:

# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、Kylin Server、Uos Server
sed -ri.bak '/^GRUB_CMDLINE_LINUX=/s@"$@ net.ifnames=0 biosdevname=0"@' /etc/default/grub

# Ubuntu、Debian
sed -ri.bak '/^GRUB_CMDLINE_LINUX=/s@"$@net.ifnames=0 biosdevname=0"@' /etc/default/grub

然后更新 GRUB 配置

# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、Kylin Server、Uos Server
grub2-mkconfig -o /boot/grub2/grub.cfg

# Ubuntu、Debian
grub-mkconfig -o /boot/grub/grub.cfg

如果是 UEFI 引导系统,更新命令为:

# Rocky
grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg

# Almalinux
grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

# CentOS
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

# openEuler
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg

# AnolisOS
grub2-mkconfig -o /boot/efi/EFI/anolis/grub.cfg

# OpenCloudOS
grub2-mkconfig -o /boot/efi/EFI/opencloudos/grub.cfg

# Kylin Server
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

# Uos Server
grub2-mkconfig -o /boot/efi/EFI/uos/grub.cfg

# Ubuntu
grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

# Debian
grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg

UEFI 引导系统可以直接执行下面命令:

EFI_DIR=`find /boot/efi/ -name "grub.cfg" | awk -F"/" '{print $5}'`

# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、Kylin Server、Uos Server
grub2-mkconfig -o /boot/efi/EFI/${EFI_DIR}/grub.cfg

# Ubuntu、Debian
grub-mkconfig -o /boot/efi/EFI/${EFI_DIR}/grub.cfg

2. 创建 Udev 规则文件: 创建 /etc/udev/rules.d/10-network.rules 文件,并添加以下内容:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="<网卡MAC地址>", NAME="eth0"

将 <网卡MAC地址> 替换为实际网卡的 MAC 地址。

[root@anolis8 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:c5:38:3b brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 172.31.7.15/21 brd 172.31.7.255 scope global dynamic noprefixroute ens33
valid_lft 1590sec preferred_lft 1590sec
inet6 fe80::20c:29ff:fec5:383b/64 scope link noprefixroute
valid_lft forever preferred_lft forever

# 在Rocky 9、Almalinux 9、CentOS 9和10、AnolisOS 8和23、OpenCloudOS 9系统上执行下面操作
[root@anolis8 ~]# cat >> /etc/udev/rules.d/10-network.rules << EOF
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:c5:38:3b", NAME="eth0"
EOF

# 也可以执行下面命令
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
ETHMAC=`ip addr show ${ETHNANME} | awk -F' ' '/ether/{print $2}'`
cat >> /etc/udev/rules.d/10-network.rules << EOF
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="${ETHMAC}", NAME="eth0"
EOF

3. 修改网卡配置文件: 创建 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,并配置网卡参数,例如:

# 在Rocky 9、Almalinux 9、CentOS 9和10、AnolisOS 23、OpenCloudOS 9系统上执行下面操作
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<-EOF
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=172.31.0.9
NETMASK=255.255.248.0
GATEWAY=172.31.0.2
DNS1=223.5.5.5
DNS2=114.114.114.114
EOF

# 在Rocky 8、Almalinux 8、CentOS 7和8、AnolisOS 8、OpenCloudOS 8、Kylin Server v10和Uos Server v20系统上执行下面操作
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
mv /etc/sysconfig/network-scripts/ifcfg-${ETHNAME} /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/sysconfig/network-scripts/ifcfg-eth0

# Ubuntu 22.04和24.04
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/50-cloud-init.yaml

# Ubuntu 20.04
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/00-installer-config.yaml

# Ubuntu 18.04
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/01-netcfg.yaml

# Debian
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/network/interfaces

4. 重启系统

reboot

重启后,网卡名称将变为 eth0。

方法二:使用 systemd 链接文件

这种方法只适合于Rocky Linux 9、Almalinux 9、CentOS Stream 9和10、AnolisOS 23、OpenCloudOS 9系统。

1. 创建 systemd 链接文件: 创建 /etc/systemd/network/70-eth0.link 文件,内容如下:

[Match]
MACAddress=<网卡MAC地址>

[Link]
Name=eth0

将 <网卡MAC地址> 替换为实际网卡的 MAC 地址。

[root@rocky9 ~]# mkdir -p /etc/systemd/network/
[root@rocky9 ~]# touch /etc/systemd/network/70-eth0.link

[root@rocky9 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:f8:60:8f brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 172.31.7.16/21 brd 172.31.7.255 scope global dynamic noprefixroute ens160
valid_lft 1791sec preferred_lft 1791sec
inet6 fe80::20c:29ff:fef8:608f/64 scope link noprefixroute
valid_lft forever preferred_lft forever

[root@rocky9 ~]# cat > /etc/systemd/network/70-eth0.link << EOF
[Match]
MACAddress=00:0c:29:f8:60:8f

[Link]
Name=eth0
EOF

2. 修改 NetworkManager 配置文件: 如果使用 NetworkManager 管理网络,需要修改 /etc/NetworkManager/system-connections 下的配置文件,例如:

mv /etc/NetworkManager/system-connections/原网卡名.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection

然后编辑文件,将其中的 interface-name 修改为 eth0。

[root@rocky9 ~]# ls /etc/NetworkManager/system-connections/ens160.nmconnection
/etc/NetworkManager/system-connections/ens160.nmconnection
[root@rocky9 ~]# mv /etc/NetworkManager/system-connections/ens160.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection

[root@rocky9 ~]# sed -i.bak 's/'ens160'/eth0/' /etc/NetworkManager/system-connections/eth0.nmconnection

3. 重启系统

reboot

重启后,网卡名称将变为 eth0。

可以使用下面脚本执行:

[root@rocky9 ~]# cat rename_eth.sh
#!/bin/bash
ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`
ETHMAC=`ip addr show ${ETHNANME} | awk -F' ' '/ether/{print $2}'`

mkdir /etc/systemd/network/
touch /etc/systemd/network/70-eth0.link
cat > /etc/systemd/network/70-eth0.link << EOF
[Match]
MACAddress=${ETHMAC}

[Link]
Name=eth0
EOF

mv /etc/NetworkManager/system-connections/${ETHNAME}.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection
sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/NetworkManager/system-connections/eth0.nmconnection

注意事项

• 修改网卡名称后,可能需要删除旧网卡的配置文件,以避免冲突。

• 如果系统中存在多个网卡,可以按照类似的方式为每个网卡创建对应的 Udev 规则或 systemd 链接文件。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。