"RTNETLINK antwortet: Datei existiert" / etc / network / interfaces Enthält keine 2 Gateways. Was ist also falsch?

13

Dies ist mein /etc/network/interfacesDateiinhalt

Dies wird nur beim Neustart des Systems wirksam.

Ich versuche es manuell zu machen. Meine Versuche unten.

auto eth0
    iface eth0 inet static
           address 192.168.1.57
           netmask 255.255.255.0
           gateway 192.168.1.1
           up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
           down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
           up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
           down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

Zuerst versucht zu rennen sudo ifup eth0

und ich erhalte

RTNETLINK answers: File exists
Failed to bring up eth0.

Die /etc/network/interfaceseinzige Arbeit, wenn ich das System neu starte

Davon abgesehen habe ich es versucht

sudo /etc/init.d/networking restart

sudo service network-manager restart

sudo service networking restart

Aber keiner von ihnen wird die Änderungen in der interfacesDatei aufrufen

Meine einzige Option war sudo ifup eth0und das gibt den obigen Fehler.

Was ist falsch?

Wolfgang
quelle

Antworten:

7

Bearbeiten Sie Ihre Konfigurationsdatei, um die Leerzeichen vor der ifaceZeilengruppe so zu entfernen , dass sie so aussieht:

auto eth0
iface eth0 inet static
   address 192.168.1.57
   netmask 255.255.255.0
   gateway 192.168.1.1
   up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
   down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
   up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
   down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

Die Nachricht, die Sie erhalten, ist nur ein Hinweis darauf, dass die Schnittstelle bereits aktiv ist. Sie müssen dies also tun, ifdownbevor Sie dies tun ifup. Sie müssen jedoch vorsichtig sein, wenn Sie eine Verbindung über ssh herstellen - Sie können sich selbst aussperren. Dies ist ein Weg, um es zu tun:

sudo ifdown eth0 && sudo ifup eth0

Beachten Sie, wie diese beiden Befehle in derselben Zeile ausgeführt werden. Stellen Sie vorsichtshalber sicher, dass Sie Zugriff auf die Serverkonsole erhalten oder den Server neu starten können, wenn ein Fehler auftritt.

dtoubelis
quelle
3
Laufen sudo ifdown eth0gibt ifdown: interface eth0 not configuredund Laufen sudo ifdown eth0 && ifup eth0 gibt das gleiche
wolfgang
1
@wolfgang, versuche Leerzeichen vor der Zeilengruppe ifacein deiner /etc/network/interfacesDatei zu entfernen und mache es ifdown/ifuperneut.
Dtoubelis
Das hat funktioniert! Ich hatte vorher nicht erwartet, dass Räume ifaceeine so große Sache schaffen würden. Könnten Sie dies bitte in Ihrer Antwort bearbeiten, damit es jemandem hilft? und es muss ein sudovorher geben ifup-> sudo ifdown eth0 && sudo ifup eth0sonst bekomme ich einen permission deniedfehler
wolfgang
1

Versuchen Sie, nach / run / network / ifstate zu suchen, und ändern Sie es, indem Sie eth (n) = eth (0) hinzufügen, wenn Sie dort nicht das gewünschte eth sehen.

Ex:

$ cat /run/network/ifstate 
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1

Verwenden Sie danach den Befehl sudo ifdown eth (n) und dann sudo ifup eth (n).

Alex
quelle
1

Für alle anderen, die hier gelandet sind, musste ich alle Schnittstellen und Bridges stoppen und dann die Module entladen, bevor der RTNETLINK-Fehler verschwinden würde.

ifconfig eth0 down
ifconfig br0 down
rmmod e1000e              # or whatever module your nic uses
modprobe e1000e
service networking start

oder einfach neu starten.

Kurt
quelle
0

Ich bin gerade auf dieses Problem gestoßen und keine der oben genannten Lösungen hat bei mir funktioniert. Ich konnte mich nicht ändern, /run/network/ifstateda es sofort auf den früheren Zustand zurückgesetzt wurde. Hat sudo ifdown eth0 && sudo ifup eth0auch nicht funktioniert.

Ich fand dann den folgenden Befehl heraus:

sudo ip addr flush dev eth0

was das Problem gelöst hat.

Digijay
quelle