eth0 ist auf CentOS nicht installiert

eth0 ist auf CentOS nicht installiert

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.shoder 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!

verwandte Informationen