更改网络接口命名为Ubuntu 16.04

我试图在这个新的Ubuntu 16.04 LTS版本上更改网络接口名称,但没有/etc/udev/rules.d/70-persistent-net.rules。

所以,我尝试使用/ lib / udev / write_net_rules但它不存在。

为什么我需要这个修改?
因为我正在使用工具来模拟使用Flex许可的虚拟平台,并且身份validation需要在eth0接口名称中。

有什么建议吗?

命令ip link返回

user@laptop:~$ ip link 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp6s0:  mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 link/ether b8:2a:xx:yy:xx:yy brd ff:ff:ff:ff:ff:ff 3: wlp7s0:  mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000 link/ether 5c:e0:xx:yy:xx:yy brd ff:ff:ff:ff:ff:ff user@laptop:~$ ifconfig enp6s0 Link encap:Ethernet HWaddr b8:2a:xx:yy:xx:yy lo Link encap:Local Loopback wlp7s0 Link encap:Ethernet HWaddr 5c:e0:xx:yy:xx:yy 

(有些信息被忽略并被XD压制)我已经尝试了一些链接:

更新到15.10后网络接口名称更改 – udev更改 如何重命名以太网接口?

感谢帮助。

关于如何在最新版本的Ubuntu中更改网络名称,有很多误导性信息。 有些信息指向systemd.link,这是错误的,因为Ubuntu(截至16.04)不使用systemd的这一部分。

实际上,更改界面名称的工作方式几乎与以前一样,但有两点不同:首先,文件/etc/udev/rules.d/70-persistent-net.rules现在必须手动创建。 这样做的好处是您不必担心任何脚本会覆盖此文件,只需添加您需要的行(您也不需要任何注释)。 第二 – 这是一个让我花费大量时间来解决问题的变化 – 与Ubuntu 14.04 LTS相比,格式略有改变:

用于将MAC地址为“02:01:02:03:04:05”的NIC的接口名称修复为“eth0”的行现在为:

 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:01:02:03:04:05", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0" 

这条线看起来与Ubuntu 14.04 LTS几乎相同,略有不同:在Ubuntu 14.04中,还有附加条件KERNEL=="eth*" 。 出于某种原因,这在Ubuntu 16.04 LTS中不起作用。 如果存在此附加条件,则忽略整行,并返回默认行为(如80-net-setup-link.rules所指定)。

在Ubuntu 16.04.1 LTS上,Linux plaptop 4.4.0-31-genericx86_64 MATE。 @Geancarlo Abich的第一步回答并且有效 。 Ubuntu在重启后直接创建了一个新名称:

编辑/ etc / default / grub更改行

 GRUB_CMDLINE_LINUX="" 

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

最后:

 $ sudo update-grub 

并重新启动您的系统:

 $ sudo reboot 
 msa@plaptop:~$ ifconfig eth0 Link encap:Ethernet HWaddr 70:5a:0f:d7:03:38 inet addr:10.67.10.43 Bcast:10.67.10.255 Mask:255.255.255.0 inet6 addr: fe80::8c03:edb5:a3d1:ba21/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:63129 errors:0 dropped:0 overruns:0 frame:0 TX packets:37788 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:51115719 (51.1 MB) TX bytes:5006758 (5.0 MB) Interrupt:16 Memory:f1200000-f1220000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:255 errors:0 dropped:0 overruns:0 frame:0 TX packets:255 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:21076 (21.0 KB) TX bytes:21076 (21.0 KB) wlan0 Link encap:Ethernet HWaddr 44:85:00:62:c6:e5 inet addr:10.67.14.106 Bcast:10.67.14.255 Mask:255.255.255.0 inet6 addr: fe80::5844:f9dd:32ff:9b45/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:25 errors:0 dropped:0 overruns:0 frame:0 TX packets:86 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5320 (5.3 KB) TX bytes:14611 (14.6 KB) 

Ubuntu的16.04服务器,AMD64

在grub文件中,更改

 GRUB_CMDLINE_LINUX="" 

 GRUB_CMDLINE_LINUX="net.ifnames=0" 

然后,输入:

 sudo update-grub 

并重新启动您的系统

 sudo reboot 

我尝试混合一些建议,我找到了解决方案!

步骤1 :禁用默认的固件inheritance名称。

编辑/etc/default/grub更改行

 GRUB_CMDLINE_LINUX="" 

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

最后以root身份运行:

 $ sudo update-grub 

并重新启动您的系统。

 $ sudo reboot 

第2步 :以root身份创建持久性文件/etc/udev/rules.d/70-persistent-net.rules并填充它们。

 $ sudo gedit /etc/udev/rules.d/70-persistent-net.rules 

例:

 # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device lan Device SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:yy:XX:yy:XX:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="ethX" # PCI device Wlan Device SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:yy:XX:yy:XX:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wlanX" 

(使用接口MAC地址来指代要重命名的接口,并根据需要更改“X”接口名称值)

保存更改并重新启动。

 $ sudo reboot 

这对我有用。