安装 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 命名方案对硬件的探测没有特定的顺序,并且可能在重启时发生变化,而这里的接口名称取决于硬件的物理位置,可以预测/猜测通过查看lspci
或lshw
输出。相反,我们可以猜测它在 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