Linux7系统如何修改网卡名称?具体操作步骤是什么?

在Linux 7系统中,默认采用Predictable Network Names(可预测网络名)机制,网卡名称通常以ens、eno、enp等前缀开头(如ens33、eno1),这种命名方式虽然能根据硬件信息(如主板插槽、网卡插槽)稳定识别网卡,但部分用户或旧版脚本习惯使用传统的eth0、eth1等名称,本文将详细介绍Linux 7系统中修改网卡名的两种方法:临时修改(重启后失效)和永久修改(重启后生效),重点说明永久修改的详细步骤及注意事项。

linux7 如何改网卡名

查看当前网卡信息

在修改网卡名前,需先确认当前网卡的名称、MAC地址及运行状态,使用ip a命令(或ifconfig,若已安装)查看:

ip a

输出示例中,重点关注类似以下内容:

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
       valid_lft 86400sec preferred_lft 86400sec
    inet6 fe80::20c:29ff:fexx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

记录下网卡名(如ens33)和MAC地址(00:0c:29:xx:xx:xx),后续修改需依赖这些信息。

临时修改网卡名(仅测试用)

临时修改通过ip命令实现,重启系统后网卡名会恢复原状,适用于临时测试场景:

# 将ens33临时修改为eth0
sudo ip link set dev ens33 name eth0
# 启动网卡(若原状态为UP)
sudo ip link set dev eth0 up

验证:执行ip a | grep eth0,若显示网卡信息则临时修改成功,但此方法不推荐生产环境使用,因重启后会失效。

永久修改网卡名(推荐方法)

永久修改需修改网络配置文件和udev规则,确保重启后网卡名固定,以下分为传统ifcfg文件方法和NetworkManager方法(Linux 7默认可能使用NetworkManager,两种方法可根据实际环境选择)。

(一)基于ifcfg文件的永久修改

  1. 备份原有配置文件
    防止修改出错导致网络不可用,先备份原网卡配置文件(位于/etc/sysconfig/network-scripts/目录下):

    sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
  2. 修改网卡配置文件
    编辑原网卡配置文件(如ifcfg-ens33),使用vimnano工具:

    sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

    需修改的核心参数如下:

    • NAME:网卡的显示名称,修改为目标名称(如eth0);
    • DEVICE:网卡设备名,需与NAME保持一致(如eth0);
    • 其他参数(如BOOTPROTOONBOOTIPADDR等)无需修改,保持原样。

    修改前后对比如下表
    | 参数 | 修改前 | 修改后 | 说明 |
    |————–|————–|————–|————————–|
    | NAME | ens33 | eth0 | 网卡显示名称 |
    | DEVICE | ens33 | eth0 | 网卡设备名 |
    | BOOTPROTO | dhcp | dhcp | IP获取方式(示例为DHCP) |
    | ONBOOT | yes | yes | 是否开机启动 |
    | IPADDR | 168.1.100 | 168.1.100 | 静态IP(若有) |

    linux7 如何改网卡名

    保存文件后退出(vim中按wq)。

  3. 创建udev规则绑定MAC地址与网卡名
    Linux 7通过udev规则根据MAC地址固定网卡名,避免硬件变动导致名称变化,创建规则文件:

    sudo vim /etc/udev/rules.d/70-persistent-net.rules

    添加以下内容(ATTR{address}替换为实际MAC地址,NAME替换为目标网卡名):

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:xx:xx:xx", NAME="eth0"

    说明:该规则表示当MAC地址为00:0c:29:xx:xx:xx的网卡被添加时,将其命名为eth0

  4. 重启网络服务或系统
    执行以下命令使配置生效(推荐重启系统,确保udev规则正确加载):

    # 重启网络服务(部分场景可能需要)
    sudo systemctl restart network
    # 或重启系统(推荐)
    sudo reboot
  5. 验证修改结果
    重启后执行ip a,查看网卡名是否已修改为eth0,且IP地址等信息正常显示:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
           valid_lft 86400sec preferred_lft 86400sec
        inet6 fe80::20c:29ff:fexx:xxxx/64 scope link
           valid_lft forever preferred_lft forever

(二)基于NetworkManager的永久修改(适用于nmcli管理)

若系统使用NetworkManager(默认),可通过nmcli命令修改,无需手动编辑ifcfg文件:

  1. 查看当前网络连接名

    nmcli con show

    输出示例:

    ens33  802-3-ethernet  ethernet  --

    记录连接名(如ens33)。

    linux7 如何改网卡名

  2. 修改连接ID为目标网卡名

    sudo nmcli con mod "ens33" connection.id "eth0"

    说明:"ens33"为原连接名,"eth0"为目标网卡名。

  3. 重启连接使配置生效

    sudo nmcli con down "eth0" && sudo nmcli con up "eth0"
  4. 验证修改

    ip a | grep eth0

    若显示网卡信息则修改成功。

注意事项

  1. 备份配置文件:修改前务必备份原配置,避免误操作导致网络中断。
  2. MAC地址一致性:udev规则中的ATTR{address}必须与实际网卡MAC地址一致,可通过ip a确认。
  3. SELinux影响:若系统启用SELinux,修改配置文件后需执行restorecon恢复上下文:
    sudo restorecon /etc/sysconfig/network-scripts/ifcfg-eth0
    sudo restorecon /etc/udev/rules.d/70-persistent-net.rules
  4. 虚拟机环境:VMware、VirtualBox等虚拟机的网卡名可能与物理机不同,需以ip a实际输出为准。
  5. 多网卡场景:若有多块网卡,需逐块修改配置文件和udev规则,避免名称冲突。

FAQs

Q1:修改网卡名后无法上网,如何排查?
A:首先检查配置文件是否正确:确认/etc/sysconfig/network-scripts/ifcfg-eth0中的DEVICENAME是否与目标网卡名一致,ONBOOT是否为yes,其次检查udev规则中的MAC地址是否正确(可通过ip a查看当前网卡的MAC地址并与规则文件中的对比),最后测试网络连通性(如ping 8.168.1.1),若不通可重启网络服务(systemctl restart network)或检查防火墙状态(firewall-cmd --state)。

Q2:为什么按照步骤修改后重启,网卡名还是显示为ens33?
A:可能原因有两个:一是udev规则未生效,需检查/etc/udev/rules.d/70-persistent-net.rules文件是否存在且内容正确(MAC地址和网卡名无误),可尝试重启udev服务(systemctl restart systemd-udev-load-modules.service)后再重启系统;二是NetworkManager未正确应用配置,若使用nmcli修改,需确认连接名是否正确(nmcli con show查看),并尝试删除原连接后重新创建(nmcli con delete "ens33",再重新配置网络)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38043.html

(0)
酷番叔酷番叔
上一篇 2025年10月8日 01:54
下一篇 2025年10月8日 02:12

相关推荐

  • Linux如何运行Windows的exe程序?,Linux运行exe文件有哪些妙招?,如何在Linux安全运行Windows软件?,Linux运行.exe文件竟如此简单?,怎样在Linux高效运行exe应用?

    核心原理Windows的.exe文件是专为Microsoft设计的可执行格式,无法直接在Linux内核上运行,需通过以下两种技术实现兼容:兼容层(如Wine):模拟Windows API,将系统调用实时转换为Linux指令(非虚拟机,性能损耗低),虚拟机(如VirtualBox):完整运行Windows系统,原……

    2025年7月24日
    11900
  • Linux如何还原系统到指定版本?

    在Linux系统中,还原系统版本通常指将当前系统回退到之前某个稳定的状态,可能是由于系统更新后出现兼容性问题、软件冲突,或需要恢复到特定测试环境的需求,还原系统版本的方法多种多样,具体选择取决于备份方式、系统损坏程度以及用户对数据安全性的要求,本文将详细介绍几种主流的Linux系统版本还原方法,包括使用快照、备……

    2025年9月24日
    10000
  • Linux系统如何制作启动盘?步骤与工具方法详解

    在Linux系统制作启动盘是安装操作系统、进行系统救援或运行Live环境的基础操作,其核心是将Linux系统镜像文件(ISO)写入可移动存储设备(如U盘),使设备具备引导功能,以下是详细的操作步骤、工具选择及注意事项,帮助用户顺利完成启动盘制作,准备工作在开始制作启动盘前,需确保以下准备工作就绪:Linux系统……

    2025年9月9日
    10000
  • Linux系统如何正确关闭MySQL进程?命令操作与步骤详解?

    在Linux系统中正确关闭MySQL进程是数据库维护的重要操作,不当的操作可能导致数据损坏、服务中断或性能问题,MySQL作为关系型数据库管理系统,其进程(通常为mysqld)在运行时会缓存数据到内存并维护事务日志,因此关闭过程需确保数据安全同步到磁盘,本文将详细介绍Linux环境下关闭MySQL进程的多种方法……

    2025年8月25日
    11100
  • Linux系统磁盘分区空间不足时如何扩展?

    在Linux系统中扩展分区是一个需要谨慎操作的过程,涉及磁盘分区和文件系统的调整,稍有不慎可能导致数据丢失,以下是详细的扩展分区步骤和注意事项,涵盖普通分区和LVM逻辑卷两种常见场景,扩展分区的前提条件存在未分配空间:目标磁盘需要有足够的未分配空间,且未分配空间应位于目标分区的相邻位置(如果是扩展逻辑分区,需在……

    2025年9月28日
    10500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信