Lösen von "RTNETLINK answers: File exists" beim Ausführen von ifup

43

Ich hatte dieses Problem, als ich meinen neuen WLAN-Dongle bekam und ein paar Leute mit dem gleichen Problem gesehen habe. Grundsätzlich tritt der folgende Fehler auf, wenn ich eine Schnittstelle konfiguriert habe und auf die andere tauschen möchte:

RTNETLINK antwortet: Datei existiert
Fehler beim Aufrufen von eth0

oder etwas ähnliches.

/etc/network/interfaces Datei:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    gateway 192.168.1.1
avidreader610
quelle
1
Sie können unter Linux nicht mehr als ein Standard-Gateway verwenden. Insbesondere können Sie nicht dasselbe Standardgateway auf zwei verschiedenen Schnittstellen verwenden. Und Sie können nicht dasselbe Netzwerk auf zwei verschiedenen Schnittstellen haben.
18.
@ceving Es ist kein Problem, zwei Schnittstellen im selben Netzwerk zu haben. Es ist auch kein Problem, wenn diese beiden Schnittstellen dasselbe Gateway haben. Die Routing-Tabelle wird streng analysiert, und Sie können sich vorstellen, dass die Einträge vorhanden sind destination IP -> interface. Daher wird es über die Schnittstelle an das Gateway gesendet, die zuerst (von unten) in der Routingtabelle analysiert wird.
George
Wenn Sie mit IPV6 arbeiten, fügen Sie immer eine Netzwerklänge hinzu: xxxx: xxxx: ... :: 1/64 an der Adresse
fcm

Antworten:

46

Wenn die von @ theoB610 bereitgestellte Lösung immer noch nicht funktioniert, müssen Sie das wlan0Gerät möglicherweise vor ifupund spülen ifdown.

sudo ip addr flush dev wlan0

Dies ist ein Problem nicht zu spezifisch für Raspberry Pi, ein ähnliches Problem aufgetreten und wurde in in verdrahteten Netzwerken gelöst hier (von wo ich die Lösung für mein Problem mit dem Pi abgeleitet).

Ébe Isaac
quelle
1
Ich hatte dieses Problem auf einem HP ProLiant Server (!) Und das hat es behoben.
Sudo
1
Großartige Lösung. Das Grundproblem besteht darin, dass einige frühere automatische oder manuelle Konfigurationen (z. B. das Ausführen von ifconfig in der Zeile cmd) noch vorhanden sind. Der Flush-Befehl behebt diese Situation.
kmarsh
1
Ich hatte dieses Problem, wenn es fehlerhafte /etc/sysconfig/network-scripts/ifcfg-*Dateien gab, die dazu führten, dass NetworkManager einige Setups nicht mochte und eine Ersatzdatei erstellte. Dadurch wurden mehrere zusätzliche Dateien erstellt und der Fehler verursacht RTNETLINK answers: File exists. Das Entfernen der defekten (diejenigen, die nicht als Profil angezeigt werden) scheint ein Fix zu sein.
Wilf
2
Kopieren Sie diese niemals auf einem Produktionsserver. Ich habe wlan0 durch eth0 ersetzt und die Schnittstelle ist sofort ausgefallen und möchte nicht zurückkehren.
Fusseldieb
1
Interessant , dass niemand zur Verfügung gestellt einfachste und durch die Regel sicherste Methode: reboot. Zum Beispiel hatte ich Probleme mit der Spülschnittstelle - meine Schnittstelle / IP fiel aus und ich konnte mich nur direkt mit einer Konsole verbinden ... also ist ein Neustart immer der richtige Weg für mich.
Stempel
24

Ich denke, eine Lösung finden Sie unter Lösen von "RTNETLINK answers: File exists", wenn Sie ifup ausführen (Lennarts Weblog). es hat es sicher für mich behoben.

Grundsätzlich können Sie in Ihrer Interface-Datei nur ein Gateway zuweisen. Entfernen Sie alle doppelten Zeilen, die das Gateway bestimmen, damit es nur einmal angezeigt wird.

Geänderte Datei / etc / network / interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    #gateway 192.168.1.1  <= Either comment or remove this line

Wir danken Lennart für die Lösung dieses Problems!

avidreader610
quelle
Stolperte über diese Antwort über Google. Dies ist, was für mich auf einer Ubuntu-VM auf Hyper-V
funktioniert hat
8

Ich löste durch:

sudo ifup --ignore-errors wlan0

Nach diesem Befehl funktionieren ifdown und ifup ordnungsgemäß.

Mauretto
quelle
Dies ist nützlich, nachdem der Neustart des Dienstnetzwerks fehlgeschlagen ist. :)
Adambean
1

Schritte:

1 check-> ip route(wenn die Standardeinstellung für die IP-Route nicht die von Ihnen gewünschte Schnittstelle ist, folgen Sie dem 2. und 3. Schritt)

2 sudo ip route del default(diese Standardschnittstelle löschen)

3 sudo ip route add default via ip_address dev interface_name(fügen Sie Ihre gewünschte Schnittstelle wie folgt hinzu)

Rahul Patil
quelle
0

In meinem Fall hatte ich noch eine andere Verbindung - als ich diese Schnittstelle mit ifdown eth0 heruntergefahren hatte, war die, die mich interessierte (wlan0), fehlerfrei.

Ich empfehle nicht, die Option --ignore-mistakes zu verwenden

Tamale
quelle
0

Ich bin darauf gestoßen, als ich mit VMWare vCenter rumgespielt habe. Wenn Sie sich im selben Boot befinden, sollten Sie die VMWare Tools, Perl und Net-Tools mit Ihrem Paketmanager installiert haben, bevor Sie die Vorlage / den Snapshot der VM erstellen.

turiyag
quelle
-1

Konfiguration erzwingen

ifdown --force --verbose ethX && ifup --force --verbose ethX
Nico
quelle