在 CentOS 操作系统中,更改网卡名是一个重要的任务,特别是在服务器管理中,为了提高安全性、简化管理和方便记忆,往往需要将默认的网卡名称(如 em1, enp0s3等)更改为传统的 eth0, eth1 等命名方式。本文将详细介绍如何在 CentOS 中进行这一操作。
你需要知道为什么要更改网卡名。传统的网卡命名规则(如 eth0, eth1)直观易记,有助于管理员快速识别和配置网络接口。而现代操作系统如 CentOS,可能会使用基于硬件地址或序号的自动命名规则,这在某些情况下可能导致混乱,尤其是在复制配置文件或迁移系统时。
要将网卡名从 em1 更改为 eth0,或者 em2 更改为 eth1,可以遵循以下步骤:
1. **编辑网卡持久化规则文件**:
打开终端并使用文本编辑器(如 vi 或 nano)编辑 `/etc/udev/rules.d/70-persistent-net.rules` 文件。如果这个文件不存在,说明你的系统使用了新的命名规则,可以跳过此步骤直接进行下一步。
在文件中,找到与你要修改的网卡相关的行,例如 `SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d0:94:66:31:06:12", NAME="em1"`。这里,`ATTR{address}` 对应的是网卡的 MAC 地址,`NAME` 是当前的网卡名称。
将 `NAME="em1"` 更改为 `NAME="eth0"`,对于 em2,改为 `NAME="eth1"`。确保其他网卡名也按顺序更改,例如 em3 更改为 eth2,依此类推。
2. **更新网卡配置文件**:
除了修改 `70-persistent-net.rules` 文件,还需确保网卡的配置文件也同步更新。通常,这些文件位于 `/etc/sysconfig/network-scripts/` 目录下,比如 `ifcfg-eth0` 和 `ifcfg-eth1`。将相应的文件内容中的 `DEVICE` 或 `NAME` 字段的值改为新的网卡名,例如 `DEVICE=eth0` 或 `NAME=eth1`。
3. **应用更改并重启**:
保存所有修改后,执行以下命令使更改生效:
```
sudo systemctl restart network.service
```
或者,如果你使用的是 systemctl:
```
sudo systemctl restart networking.service
```
如果上述命令不成功,可能需要重启系统来完成网卡名的更改。运行 `sudo reboot` 命令重启系统。
4. **验证更改**:
重启后,通过 `ip addr show` 或 `ifconfig`(如果已安装)命令检查网卡名称是否已更改为指定的 ethX 名称。如果一切正常,你现在应该能够使用新的网卡名进行网络配置和管理。
注意,从 CentOS 7 开始,`network` 服务已被 `network-scripts` 取代,因此推荐使用 systemctl 进行服务管理。在较新版本的 CentOS 8 或 RHEL 8 中,`NetworkManager` 负责网络接口的配置,你可能需要通过它来管理网卡。
在进行上述操作时,确保对任何更改都做好备份,并谨慎操作,避免中断网络连接。同时,如果你的服务器上有多个网卡,务必按照正确的顺序进行更改,以免混淆网络接口。