在 CentOS(尤其是 CentOS 7 及以后版本) 中,“替换网卡名称”(例如从传统的 eth0、eth1 变成 ens33、enp0s3、em1 等)并不是随意改的,而是 有意为之,主要出于稳定性、可预测性和一致性的考虑。
下面分点说明原因和背景。
在早期 Linux(CentOS 6 及以前)中,网卡名称通常是:
eth0, eth1, eth2 ...
存在的问题:
eth0 变成 eth1eth0 对应哪个物理口eth0,一旦名称变化就会断网从 CentOS 7(systemd + udev) 开始,默认启用 Predictable Network Names。
| 名称 | 含义 |
|---|---|
ens33 |
由 PCI 位置决定的以太网卡 |
enp0s3 |
PCI 总线 0,插槽 3 |
em1 |
主板集成网卡(Embedded) |
enp3s0f1 |
总线 3,插槽 0,功能 1 |
udev 规则自动生成CentOS 7/8 也可以改回传统命名方式:
编辑 grub:
vi /etc/default/grub
在 GRUB_CMDLINE_LINUX 中添加:
net.ifnames=0 biosdevname=0
然后:
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
vi /etc/udev/rules.d/70-persistent-net.rules
CentOS 替换网卡名称,是为了让网卡名“可预测、稳定、与硬件对应”,避免传统 eth0 乱序带来的运维风险。
如果你愿意,我也可以帮你:
只要告诉我你的 CentOS 版本 + 使用场景 即可。