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

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
简介: 在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`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 链接文件。
相关文章
|
2月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
189 3
Linux系统禁用swap
|
3月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
3月前
|
存储 Ubuntu Linux
「正点原子Linux连载」第二章Ubuntu系统入门
在图2.8.2.4中,我们使用命令umount卸载了U盘,卸载以后当我们再去访问文件夹/mnt/tmp的时候发现里面没有任何文件了,说明我们卸载成功了。
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
222 0
Linux系统初始化脚本
|
3月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
180 18
|
2月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
216 1
|
2月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
822 1
|
3月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1276 10
|
3月前
|
安全 Linux 数据安全/隐私保护
为Linux系统的普通账户授予sudo访问权限的过程
完成上述步骤后,你提升的用户就能够使用 `sudo`命令来执行管理员级别的操作,而无需切换到root用户。这是一种更加安全和便捷的权限管理方式,因为它能够留下完整的权限使用记录,并以最小权限的方式工作。需要注意的是,随意授予sudo权限可能会使系统暴露在风险之中,尤其是在用户不了解其所执行命令可能带来的后果的情况下。所以在配置sudo权限时,必须谨慎行事。
477 0
|
3月前
|
Ubuntu Linux 开发者
国产 Linux 发行版再添新成员,CutefishOS 系统简单体验
当然,系统生态构建过程并不简单,不过为了帮助国产操作系统优化生态圈,部分企业也开始用国产操作系统替代 Windows,我们相信肯定会有越来越多的精品软件登录 Linux 平台。
222 0

热门文章

最新文章