为什么我的网络接口名为 enp0s25 而不是 eth0?

为什么我的网络接口名为 enp0s25 而不是 eth0?

安装 Ubuntu 15.10 后,我的许多脚本都停止工作了,而且我很难记住这个新名称,因为我多年来一直习惯使用 ethx 和 wlanx。这种变化有什么原因吗?我必须习惯这个吗?还是我可以重命名它并回到旧的 eth0?

$ ifconfig

enp0s25   Link encap:Ethernet  HWaddr 77:5a:5e:a6:86:d5  
      inet addr:192.168.31.239  Bcast:192.168.31.255  Mask:255.255.255.0
      inet6 addr: fe80::725a:b6ff:fea6:86d7/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:4833 errors:1332 dropped:0 overruns:0 frame:666
      TX packets:5589 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3266446 (3.2 MB)  TX bytes:1046654 (1.0 MB)
      Interrupt:20 Memory:d3500000-d3520000

答案1

这就是所谓的可预测的网络接口命名并且是systemd,Ubuntu 从 15.04 版本开始已开始向该版本过渡。

基本思想是,与以前的 *nix 命名方案不同,以前的 *nix 命名方案对硬件的探测没有特定的顺序,并且可能在重启时发生变化,而这里的接口名称取决于硬件的物理位置,可以预测/猜测通过查看lspcilshw输出。相反,我们可以猜测它在 pci 系统中的物理位置。在你的情况下,那将是 pci 总线 0,插槽 2。根据freedesktop.org 文章,实际上有 3 种分配接口名称的方法:基于板载卡的 BIOS/固件、基于 PCI 信息和基于接口的 MAC 地址。请参阅此处查看其他示例

根据freedesktop.org 页面切换到可预测命名的原因之一是,经典命名约定在启动时添加和删除设备时,可能会导致多接口系统中的软件安全风险。此外,根据评论经过山姆·汉斯, “在具有许多以太网端口的大型服务器上,它非常有用:您可以立即分辨出哪个接口连接到哪个端口,并且添加或删除硬件不会改变其他端口的名称。”

如何在 15.10 中重命名网络接口以防您决定恢复其他版本的命名。

答案2

值得一提的是,freedesktop.org PredictableNetworkInterfaceNames 文件引用了源文件的注释作为规范,但该文件已被修改以删除注释 - 请参阅https://github.com/systemd/systemd/pull/12518

答案3

以下是我在基于 Debian 和 RHEL 的系统上使用的快速修复方法

#编辑 /etc/grub/default

步骤 1.) 将其添加到“net.ifnames=0 biosdevname=0”下面的行

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

步骤2.)更新GRUB

这取决于您的操作系统。

基于 Debian 的 Ubuntu/Mint:

更新 grub

Centos/RHEL

grub2-mkconfig -o /boot/grub2/grub.cfg

来源:http://realtechtalk.com/Linux_How_To_Change_NIC_Name_to_eth0_instead_of_enps33_or_enp0s25-2303-articles

相关内容