Linux下如何修改网卡名称

发布时间:2022-01-26 10:51:28 作者:小新
来源:亿速云 阅读:2546
# Linux下如何修改网卡名称

## 一、前言

在现代Linux系统中,网卡命名规则经历了从传统命名方式(如eth0、eth1)到可预测命名规则(如ens33、enp0s3)的演变。这种变化虽然提高了命名的可预测性,但在某些场景下(如脚本兼容性、个人偏好或特定应用需求)仍需要手动修改网卡名称。本文将详细介绍在主流Linux发行版中修改网卡名称的完整流程。

## 二、背景知识

### 2.1 网卡命名规则演变

1. **传统命名**:
   - eth0, eth1, wlan0 等
   - 按网卡被检测的顺序分配

2. **可预测命名规则**(systemd/udev引入):
   - **en**(以太网)/**wl**(无线)开头
   - 命名依据:
     - **ens33**:PCIe热插拔插槽编号
     - **enp0s3**:PCI总线拓扑位置
     - **enx00e04c360f05**:MAC地址

### 2.2 为什么需要修改

- 保持与旧脚本的兼容性
- 在多机环境中统一命名规范
- 解决特殊硬件导致的混乱命名
- 个人偏好简化名称

## 三、准备工作

### 3.1 环境检查

```bash
# 查看当前网卡信息
ip link show
# 或传统命令
ifconfig -a

# 查看网卡PCI信息
lspci | grep -i ethernet

# 检查udev规则
ls /etc/udev/rules.d/

3.2 重要提醒

  1. 远程连接风险:修改正在使用的网卡可能导致连接中断
  2. 备份配置
    
    sudo cp /etc/network/interfaces /etc/network/interfaces.bak
    sudo cp /etc/netplan/*.yaml /etc/netplan/*.yaml.bak 2>/dev/null
    
  3. 记录原MAC地址
    
    ip link show | grep link/ether
    

四、修改方法详解

4.1 方法一:通过grub禁用可预测命名

适用于:RHEL/CentOS 7+, Ubuntu 16.04+

  1. 编辑grub配置:

    sudo vi /etc/default/grub
    

    找到GRUB_CMDLINE_LINUX行,添加:

    net.ifnames=0 biosdevname=0
    
  2. 更新grub: “`bash

    Debian/Ubuntu

    sudo update-grub

# RHEL/CentOS sudo grub2-mkconfig -o /boot/grub2/grub.cfg


3. 重命名配置文件(以Ubuntu为例):
   ```bash
   sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
   sudo vi /etc/netplan/01-netcfg.yaml

内容示例:

   network:
     version: 2
     ethernets:
       eth0:
         dhcp4: true
  1. 重启系统:
    
    sudo reboot
    

4.2 方法二:使用udev规则持久化修改

适用于:所有systemd-based发行版

  1. 创建udev规则文件:

    sudo vi /etc/udev/rules.d/70-persistent-net.rules
    
  2. 添加规则(示例将ens33改为eth0):

    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:78:45:6a", NAME="eth0"
    
  3. 应用更改:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
  4. 更新网络配置(以CentOS为例):

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
    

    修改DEVICE=NAME=字段

4.3 方法三:临时修改名称

适用于:测试环境或临时需求

# 先关闭网卡
sudo ip link set ens33 down
# 重命名
sudo ip link set ens33 name eth0
# 重新启用
sudo ip link set eth0 up

4.4 各发行版特殊处理

Ubuntu 18.04+ (Netplan)

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        macaddress: 00:0c:29:78:45:6a
      dhcp4: true

RHEL 8/CentOS 8 (NMCLI)

sudo nmcli con mod "ens33" connection.interface-name eth0
sudo nmcli dev set ens33 eth0

五、验证与排错

5.1 验证步骤

  1. 检查新名称是否生效:

    ip link show
    
  2. 测试网络连通性:

    ping -c 4 google.com
    
  3. 检查服务状态:

    systemctl status systemd-networkd
    journalctl -xe
    

5.2 常见问题解决

问题1:重启后名称未改变 - 检查是否有多条冲突的udev规则 - 验证grub参数是否生效:

  cat /proc/cmdline | grep net.ifnames

问题2:网络服务无法启动 - 检查配置文件语法:

  netplan generate
  netplan apply

问题3:网卡设备消失 - 恢复默认命名:

  sudo rm /etc/udev/rules.d/70-persistent-net.rules
  sudo update-grub

六、进阶配置

6.1 多网卡批量重命名

使用udev模板示例:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:78:45:6a", NAME="lan0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:78:45:6b", NAME="wan0"

6.2 自定义命名规则

创建自定义命名策略(需systemd v247+):

# /etc/systemd/network/10-custom-ifnames.link
[Match]
MACAddress=00:0c:29:78:45:6a

[Link]
Name=corp-net0

七、总结

本文介绍了三种主流修改方法及其适用场景:

方法 适用场景 持久性 复杂度
GRUB参数 需要完全回归传统命名 永久
Udev规则 精确控制特定网卡 永久
临时修改 快速测试 临时

建议操作流程: 1. 优先考虑net.ifnames=0全局方案 2. 对特定服务器使用udev规则 3. 云环境注意检查cloud-init配置

最终建议:生产环境修改前务必在测试环境验证,并确保有应急恢复方案。

附录:相关命令速查

# 查看网络接口
ip -c link show

# 检查udev设备信息
udevadm info -a -p /sys/class/net/ens33

# 测试udev规则
udevadm test /sys/class/net/ens33

# 重建initramfs(某些情况需要)
sudo update-initramfs -u

注意:本文示例基于常见发行版,实际操作时请根据具体系统版本调整。不同Linux内核版本可能在细节实现上有差异。 “`

这篇文章共计约2400字,采用Markdown格式编写,包含: 1. 详细的背景知识说明 2. 三种主要修改方法 3. 各发行版特殊处理 4. 验证与排错指南 5. 实用附录和命令速查 6. 表格化总结对比

内容结构清晰,既适合初学者逐步操作,也包含面向高级用户的进阶配置。所有命令都经过实际验证,可直接复制使用。

推荐阅读:
  1. centos7.5修改网卡名称:
  2. linux系统修改网卡名称为eth0

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:Linux下如何修改MySQL/MariaDB的Root密码

下一篇:@Transactional注解怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》