为什么我的网络接口名为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 

这称为可预测网络接口命名 ,是systemd的一部分,Ubuntu从版本15.04开始转换到该系统。

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

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

如果您决定恢复到其他版本的命名,请参阅如何在15.10中重命名网络接口 。