Ich benenne Netzwerkschnittstellen um, indem ich die Dateien in ändere /etc/sysconfig/network-scripts
.
- eth0 -> nic0
- eth1 -> nic1
Der Inhalt der Netzwerkskripte sieht nach der Änderung folgendermaßen aus:
# cat /etc/sysconfig/network-scripts/ifcfg-nic0
DEVICE=nic0
BOOTPROTO=static
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
USERCTL=no
IPV6INIT=no
MASTER=bond0
SLAVE=yes
Ein Neustart aktiviert die neue Konfiguration. Aber wie aktiviere ich diese Konfiguration, ohne neu zu starten?
A systemctl restart network
macht den Trick nicht.
Ich kann eine Schnittstelle mit dem alten Namen ( ifdown eth0
) herunterfahren, erhalte jedoch ifup
die folgende Meldung, unabhängig davon, ob der alte oder der neue Name angegeben wurde:
FEHLER: [/ etc / sysconfig / network-scripts / ifup-eth] Gerät nic0 scheint nicht vorhanden zu sein, was die Initialisierung verzögert.
/etc/init.d/network status
zeigt diese Ausgabe:
Configured devices:
lo bond0 nic0 nic1
Currently active devices:
lo eth0 eth1 bond0
Beide ifconfig
und ip a
zeigen die alten Schnittstellennamen an.
quelle
Antworten:
Sie können das Gerät mit dem Befehl ip umbenennen:
Bearbeiten :
Möglicherweise möchten Sie auch sicherstellen, dass Sie eine udev-Regel konfigurieren, damit dies auch beim nächsten Neustart funktioniert. Der Pfad für udev wurde in CentOS 7 nach /usr/lib/udev/rules.d/60-net.rules verschoben, Sie können ihn jedoch weiterhin auf die gleiche Weise verwalten. Wenn Sie Ihrer Kernel-Startzeichenfolge "net.ifnames = 0 biosdevname = 0" hinzugefügt haben , um zum alten Benennungsschema für Ihre Netzwerkkarte zurückzukehren, können Sie entfernen
Und ersetzen Sie es durch
Du brauchst einen Eintrag pro NIC. Stellen Sie sicher, dass Sie die richtige MAC-Adresse verwenden und aktualisieren Sie das Feld NAME. Wenn Sie nicht "net.ifnames = 0 biosdevname = 0" verwendet haben, seien Sie vorsichtig, da dies unbeabsichtigte Folgen haben kann.
quelle
/etc/udev/rules.d/90-eno-fix.rules
überschreiben, da sie alle zuvor funktionierenden Lösungen zum Umbenennen der Netzwerkgeräte überschreibt.eno########
Wert, der alle diese Versuche, ihn in so etwas wie umzubenennen, außer Kraft setzteth0
. Ist das sinnvoll? Ich muss auf meinem Computer überprüfen, welche Version ich verwende, aber ich habe gestern ein Upgrade auf die neueste CentOS 7.3-Version durchgeführt, sodass ich denke, dass ich die erwähnte Version haben werde.Die beste Antwort ist meines Erachtens die Kombination der beiden bereits geposteten Antworten. Verwenden Sie die
ip link
von James Shewey (ip link set <old_device_name> name <new_device_name>
) vorgeschlagenen Befehle , um den Gerätenamen zu ändern, ohne die Netzwerkdienste neu zu starten .Ändern Sie die entsprechende Datei in, damit die Änderungen nach einem Neustart in Red Hat Linux erhalten bleiben
/etc/sysconfig/network-scripts/
. Benennen Sie die Dateiifcfg_<old_device_name>
in umifcfg_<new_device_name>
und ändern Sie dieDEVICE
Variable in<new_device_name>
. Stellen Sie außerdem sicher, dass dieHWADDR
Variable festgelegt und korrekt ist. Es ist nicht erforderlich, udev-Regeln zu berühren , da diese60-net.rules
eigentlich zum Einlesen der ifcfg-Konfigurationsdateien dienen/etc/sysconfig/network-scripts
.quelle
Um die alte Namenskonvention wiederherzustellen, müssen Sie die
/etc/default/grub
Datei bearbeiten und Folgendes hinzufügenam Ende der
GRUB_CMDLINE_LINUX
Variablenquelle
biosdevname
Paket entfernen , wenn es installiert istquelle
Die Antwort von @James Shewey scheint der richtige Weg zu sein.
Wenn Sie nur mit den Konfigurationsdateien in arbeiten
/etc/sysconfig/network-scripts
und dann ein Neuladen auslösen möchten, funktioniert das Entladen und Laden des Kernel-Moduls, wie von @Tom Hunt in den Kommentaren erwähnt, ebenfalls:Wenn Sie remote auf den Computer zugreifen, stellen Sie sicher, dass Sie alle Befehle in einem Nohup ausführen, da Sie sich sonst aussperren:
Der neu zu ladende Treiber hängt natürlich von Ihrer Benutzeroberfläche ab.
quelle
Ich habe das oben genannte mit Vagrant / VirtualBox und ansible versucht, aber irgendwie funktionierte das in meiner Entwicklungsumgebung überhaupt nicht.
Die alten Schnittstellennamen wurden bis zu einem vollständigen Neustart beibehalten.
Ich habe die folgenden Regeln hinzugefügt
/etc/udev/rules.d/60-persistent-net.rules
(basierend auf: https://access.redhat.com/solutions/112643 )Mein Ziel war es, der Schnittstelle einen bestimmten Namen zu geben, der auf der PCI-Adresse basiert.
Beispiel:
Nach dem Hinzufügen dieser Regeln habe ich die folgenden Befehle ausgeführt:
Die Fehlermeldung befand sich
Cannot find device "int0"
imip link set * up
Befehl. Und in/var/log/messages
mir sind folgende Meldungen aufgefallenDas Folgende funktionierte jedoch, indem auf die VM über VirtualBox zugegriffen wurde und die folgenden Befehle ausgeführt wurden, um das Kernelmodul zu entfernen und erneut hinzuzufügen.
Ich habe dies in folgendem Thread gefunden: https://www.centos.org/forums/viewtopic.php?t=54695
Das Merkwürdige bemerkte ich , war , dass
lsmod
mir gibt ( man beachte dieUsed by
)quelle
ip link set eth0 down; ip link set eth0 name int0; ip link set int0 up
? Keinudev...
Befehl!