Ich habe versucht, den Namen der Netzwerkschnittstellen in dieser neuen Ubuntu 16.04 LTS-Version zu ändern, aber es fehlt der Name /etc/udev/rules.d/70-persistent-net.rules
.
Also habe ich versucht, es zu verwenden, /lib/udev/write_net_rules
aber es existiert nicht.
Warum brauche ich diese Änderung? Weil ich ein Tool zum Simulieren virtueller Plattformen verwende, die eine flexible Lizenzierung verwenden und die Authentifizierung im eth0
Schnittstellennamen enthalten sein muss.
Irgendein Vorschlag?
Der Befehl ip link
gibt Folgendes zurück:
user@laptop:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
(Einige Informationen wurden ignoriert und unterdrückt)
Ich habe bereits einige Links ausprobiert:
Antwort1
In neueren Ubuntu-Versionen gibt es viele irreführende Informationen zum Ändern von Netzwerknamen. Einige Informationen verweisen auf systemd.link, was einfach falsch ist, da Ubuntu (ab 16.04) diesen Teil von systemd nicht verwendet.
Tatsächlich funktioniert das Ändern des Schnittstellennamens fast wie früher, mit zwei kleinen Unterschieden: Erstens /etc/udev/rules.d/70-persistent-net.rules
muss die Datei jetzt manuell erstellt werden. Das hat den Vorteil, dass Sie sich keine Sorgen machen müssen, dass ein Skript diese Datei überschreibt, und einfach die Zeilen hinzufügen können, die Sie benötigen (Sie brauchen auch keine Kommentare). Zweitens – und das ist die Änderung, die mich viel Zeit gekostet hat, sie herauszufinden – hat sich das Format im Vergleich zu Ubuntu 14.04 LTS leicht geändert:
Die Zeile zum Korrigieren des Schnittstellennamens der Netzwerkkarte mit der MAC-Adresse „02:01:02:03:04:05“ auf „eth0“ lautet nun:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:01:02:03:04:05", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
Diese Zeile sieht fast genauso aus wie in Ubuntu 14.04 LTS, mit einem kleinen Unterschied: In Ubuntu 14.04 gab es die zusätzliche Bedingung KERNEL=="eth*"
. Aus irgendeinem Grund funktioniert dies in Ubuntu 16.04 LTS nicht. Wenn diese zusätzliche Bedingung vorhanden ist, wird die gesamte Zeile ignoriert und Sie kehren zum Standardverhalten zurück (wie in angegeben 80-net-setup-link.rules
).
Antwort2
Unter Ubuntu 16.04.1 LTS, Linux plaptop 4.4.0-31-genericx86_64 MATE. Schritt eins der Antwort von @Geancarlo Abich und es hat funktioniert. Ubuntu erstellt direkt nach dem Neustart einen neuen Namen:
Bearbeiten Sie Ihre /etc/default/grub und ändern Sie die Zeile von
GRUB_CMDLINE_LINUX=""
Zu
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
und schlussendlich:
$ sudo update-grub
und starten Sie Ihr System neu:
$ 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)
Antwort3
Ubuntu-16.04-Server-AMD64
In /etc/default/grub
ändern
GRUB_CMDLINE_LINUX=""
Zu
GRUB_CMDLINE_LINUX="net.ifnames=0"
Geben Sie dann Folgendes ein:
sudo update-grub
und starten Sie Ihr System neu
sudo reboot
Antwort4
Ich habe versucht, einige Vorschläge zu mischen, und habe die Lösung gefunden!
Schritt 1: Deaktivieren Sie die standardmäßig von der Firmware übernommenen Namen.
Bearbeiten Sie die /etc/default/grub
Änderung der Zeile von
GRUB_CMDLINE_LINUX=""
Zu
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
und führen Sie abschließend als Root aus:
$ sudo update-grub
und starten Sie Ihr System neu.
$ sudo reboot
Schritt 2: Erstellen Sie die persistenten Dateien /etc/udev/rules.d/70-persistent-net.rules
als Root und füllen Sie sie.
$ sudo gedit /etc/udev/rules.d/70-persistent-net.rules
Beispiel:
# 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"
(Verwenden Sie die MAC-Adresse der Schnittstelle, um auf die Schnittstelle zu verweisen, die Sie umbenennen möchten, und ändern Sie die Werte des Schnittstellennamens „X“ nach Wunsch.)
Änderungen speichern und neu starten.
$ sudo reboot
Das funktioniert bei mir.