Risolvere "risposte RTNETLINK: il file esiste" quando si esegue ifup


43

Ho avuto questo problema quando ho ottenuto il mio nuovo dongle Wi-Fi e ho visto alcune persone con lo stesso problema. Fondamentalmente quando ho un'interfaccia configurata e voglio passare all'altra, viene visualizzato questo errore:

RTNETLINK risponde: il file esiste
Impossibile avviare eth0

o qualcosa di simile.

/etc/network/interfaces file:

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

1
Non è possibile avere più di un gateway predefinito su Linux. In particolare non è possibile avere lo stesso gateway predefinito su due interfacce diverse. E non puoi avere la stessa rete su due interfacce diverse.
ceving

@ceving non ci sono problemi ad avere due interfacce nella stessa rete. Inoltre, non ci sono problemi se queste due interfacce hanno lo stesso gateway. La tabella di routing viene analizzata in modo rigoroso e puoi immaginare le voci destination IP -> interface. In questo modo verrà inviato al gateway tramite l'interfaccia che analizza per primo (dal basso) nella tabella di routing.
George,

se hai a che fare con IPV6 aggiungi sempre una lunghezza di rete: xxxx: xxxx: ... :: 1/64 sull'indirizzo
fcm

Risposte:


46

Se la soluzione fornita da @ theoB610 continua a non funzionare, potrebbe essere necessario scaricare il wlan0dispositivo prima ifupe ifdown.

sudo ip addr flush dev wlan0

Questo è un problema non troppo specifico per Raspberry Pi, si è verificato un problema simile ed è stato risolto nelle reti cablate qui (da dove ho derivato la soluzione per il mio problema con il Pi).


1
Ho riscontrato questo problema su un server HP ProLiant (!) E questo è stato risolto.
sudo,

1
Ottima soluzione Il problema di base è che qualche configurazione precedente, automatica o manuale (come l'esecuzione di ifconfig dalla linea cmd) persiste ancora. Il comando flush risolve tale situazione.
kmarsh

1
Ho avuto questo problema quando ci sono /etc/sysconfig/network-scripts/ifcfg-*file non validi che causano NetworkManager che non apprezza alcune configurazioni e crea un file sostitutivo, creando così più file extra e causando l'errore RTNETLINK answers: File exists. Rimuovere quelli rotti (quelli che non vengono visualizzati come profilo) sembra essere una soluzione.
Wilf,

2
Non copiarlo mai su un server di produzione. Ho sostituito wlan0 con eth0 e l'interfaccia si è interrotta immediatamente e non voglio tornare.
Fusseldieb,

1
Interessante il fatto che nessuno ha fornito più semplice e dalla regola metodo più sicuro: reboot. Ad esempio con l'interfaccia di flushing ho avuto problemi - la mia interfaccia / IP non funzionava e potevo collegarmi direttamente su una console ... quindi il riavvio è sempre la strada da percorrere per me.
Criceto

24

Penso che si possa trovare una soluzione nel Risolvere "Risposte RTNETLINK: il file esiste" quando si esegue ifup (il weblog di Lennart); lo ha sicuramente risolto per me.

Fondamentalmente puoi avere un solo gateway assegnato nel tuo file interfacce. Rimuovere eventuali righe duplicate che determinano il gateway in modo che appaia una sola volta.

Modificato / etc / network / file 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

Tutto il merito a Lennart per aver risolto questo problema!


Ci siamo imbattuti in questa risposta tramite Google. Questo è ciò che ha funzionato per me su una macchina virtuale Ubuntu su Hyper-V
abhijit

8

Ho risolto da:

sudo ifup --ignore-errors wlan0

dopo questo comando ifdown e ifup hanno iniziato a funzionare correttamente.


Ciò è utile dopo il "riavvio del servizio di rete" fallito, grazie. :)
Adambean,

1

passaggi:

1 spunta-> ip route(se l'impostazione predefinita dell'IP route è diversa dall'interfaccia richiesta, segui il 2 ° e il 3 ° passaggio)

2 sudo ip route del default(elimina l'interfaccia predefinita)

3 sudo ip route add default via ip_address dev interface_name(aggiungi l'interfaccia richiesta in questo modo)


0

Nel mio caso, avevo ancora un'altra connessione in esecuzione - una volta che ho rimosso quell'interfaccia con ifdown eth0, quella a cui ero interessato (wlan0) è venuta fuori in modo pulito.

Non consiglio di usare l'opzione --ignore-errors


0

Mi sono imbattuto in questo mentre facevo casino con VMWare vCenter. Se ti trovi nella stessa barca, dovresti aver installato VMWare Tools, perl e net-tools con il tuo gestore pacchetti prima di creare il modello / istantanea della VM.


-1

Forza de / configurazione

ifdown --force --verbose ethX && ifup --force --verbose ethX
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.