Wie gehe ich bei der Installation vor?eth0auf CentOS? Wenn ich das mache ifconfig -a
,eth0ist nicht da. Hier ist die Ausgabe von ip link
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue
link/void
Antwort1
Netzwerkschnittstellen können unter Linux je nach Typ (kabelgebundenes Ethernet, Wi-Fi, PPP, SLIP usw.), PCI-Steckplatz, Initialisierungsreihenfolge usw. unterschiedliche Namen haben. Wenn ein Computer beispielsweise über eine einzelne Ethernet-Karte verfügt, lautet ihr Nameeth0* .
In Ihrem Fall gibt es einevirtuellprivater Server ohne Ethernet-Netzwerkkarte, nicht einmal eine emulierte. Trotzdem haben Sie eine Netzwerkkarte namensvenet0. Sie können es umbenennen mit:
ip link set venet0 name eth0
Wenn die Schnittstelle verwendet wird, schlägt der Befehl fehl. Sie müssen sie daher möglicherweise herunterfahren ( ip link set venet0 down
). Dadurch wird jedoch wahrscheinlich Ihre Verbindung zum Server getrennt.
Wenn Sie bereit sind, dieRisiko, können Sie im Hintergrund ein Skript ausführen, das die Schnittstelle herunterfährt, umbenennt und dann wieder hochfährt. Holen Sie sich zuerst die Einstellungen fürvenet0und die Routing-Tabelle:
[root@server ~]# ip addr show dev venet0
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 127.0.0.1/32 scope host venet0
inet X.Y.Z.T/32 brd X.Y.Z.T scope global venet0:0
[root@server ~]# ip ro
192.0.2.0/24 dev venet0 scope host
169.254.0.0/16 dev venet0 scope link metric 1002
default dev venet0 scope link
Erstellen Sie dann ein Skript ( rename-to-eth0.sh
) ähnlich diesem:
#!/bin/sh
### Rename
ip link set venet0 down # Bring interface down
ip link set venet0 name eth0 # Rename interface
ip link set eth0 up # Bring interface up
### Restore
# Restore interface settings. Adapt accordingly!!!
ip addr add 127.0.0.1/32 scope host dev eth0
ip addr add X.Y.Z.T/32 brd X.Y.Z.T scope global label eth0:0 dev eth0
# Restore routing table. Adapt accordingly!!!
ip ro add 192.0.2.0/24 dev venet0 scope host
ip ro add 169.254.0.0/16 dev venet0 scope link metric 1002
ip ro add default dev eth0
Führen Sie nun das Skript mitneindh nohup ./rename-to-eth0.sh
oder innenBildschirm,tmuxusw. Wenn dies fehlschlägt, müssen Sie den Server wahrscheinlich neu starten.
* Die Dinge werden sich ändern, wenn die„Vorhersagbare Netzwerkschnittstellennamen“Vorschlag wird umgesetzt, obwohl dies nicht für CentOS6 oder früher gilt. Beachten Sie, dass gemäß diesem Vorschlag eine integrierte Ethernet-Karte benannt werden könnteem1.
Antwort2
Wenn Ihre Verwendung von eth0 einfach so geändert werden kann, dass überall dort, wo Sie „eth0“ verwenden würden, auf die Netzwerkschnittstelle mit dem Namen „venet0“ verwiesen wird, können Sie das einfach tun.
Wenn Sie jedoch den Namen eth0 haben müssen, können Sie etwas wie
sudo ip link set dev venet0 alias eth0
Mit dem Präfix „sudo“ können Sie Befehle als „Root“-Benutzer ausführen. Wenn Sie bereits als Root arbeiten, können Sie dies weglassen. Tatsächlich sollten Sie es wahrscheinlich ohne versuchen, und wenn keine Fehler auftreten, haben Sie gewonnen!