Impossibile ifdown eth0 (interfaccia principale)


51

Non riesco a ifdowninterfacciare su Debian 6.0.5:

user@box:/etc/network$ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.

user@box:/etc/network$ cat interfaces 
auto lo
iface lo inet loopback

allow-hotplug eth0 
allow-hotplug eth1 

auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254

auto eth1
iface eth1 inet manual

Come richiesto da Marco:

user@box:/etc/network/$ cat /run/network/ifstate 
lo=lo
eth1=eth1

4
Cosa /run/network/ifstatecontiene?
Marco,

Ho aggiornato la mia domanda con il contenuto di questo file, eth0 non è presente. Un veloce "Google" mi sta dicendo il significato di questo file (dato che non l'ho mai visto prima), penso di poter vedere dove si trova il problema :)
jwbensley,

@Marco; Questo ha effettivamente risolto il mio problema, se lo
pubblichi

Risposte:


55

Controlla il contenuto del file /run/network/ifstate. ifupe ifdownutilizzare questo file per annotare quali interfacce di rete possono essere attivate e disattivate. Pertanto, ifuppuò essere facilmente confuso quando vengono utilizzati altri strumenti di rete per visualizzare un'interfaccia (ad es ifconfig.).

Da uomo ifup

Il programma registra se le interfacce di rete sono attive o meno. In circostanze eccezionali, questi record possono diventare incoerenti con gli stati reali delle interfacce. Ad esempio, un'interfaccia che è stata visualizzata utilizzando ifup e successivamente deconfigurata utilizzando ifconfigverrà comunque registrata come up. Per risolvere questo problema è possibile utilizzare l' --forceopzione per forzare ifup o ifdowneseguire comandi di configurazione o deconfigurazione, nonostante ciò che considera lo stato corrente dell'interfaccia.


8
Per aggiungere a questa risposta, ho dovuto aggiungere eth0=eth0per /run/network/ifstateconvincerlo per riconoscere l'interfaccia e configurarlo correttamente. Questa risposta mi ha aiutato a indicarmi il file, ma ha smesso di suggerire quell'aggiunta, che è ciò che ha risolto il mio problema simile.
David Parks,

1
@DavidParks Sei sicuro che l'interfaccia sia contrassegnata come autoin /etc/network/interfaces? Dovrebbe apparire /run/network/ifstatesenza la necessità di modificare manualmente il file.
Marco

1
--forceera la risposta per me; si è scoperto che ifupnon ha portato l'interfaccia in primo luogo a causa di un comando non riuscito /etc/network/if-pre-up.d; fortunato a farmi rete!
sanmai,

32

ifdownè un programma di alto livello che fa molte cose di cui potresti non aver bisogno. Inoltre, non è disponibile ovunque. Il modo più portatile potrebbe funzionare per te:

$ sudo ifconfig eth0 down

Se non ifupci riesci , probabilmente hai qualche problema di configurazione. ifconfig eth0 upProbabilmente farlo manualmente non è la cosa giusta in quel caso. Su Debian, ifupè un eseguibile binario, quindi dovresti probabilmente stracefarlo per capire dove viene bloccato:

$ sudo strace -e open ifup eth0

Questo ti dirà quali file si ifupstanno aprendo mentre funziona, il che potrebbe darti un'idea del problema.

Su altri sistemi (ad esempio RHEL e derivati) ifupè uno script di shell, quindi è molto più facile eseguire il debug:

# sh -x `which ifup` eth0

L'esecuzione di uno script shell con lo sh -xfa stampare ogni riga che esegue, in modo da poter tracciare l'esecuzione.


Una risposta incrinata, ma Marco ha riscontrato il problema. Ho provato a sudo ifconfig eth0 down && sudo ifconfig eth0 upsbattere su e giù l'interfaccia, ma stavo cercando di attivare manualmente uno script if-up che ho scritto e che non lo stava facendo. Dopo aver aggiornato il mio file / etc / network / run / ifstate, ifdown / up funziona ora. Grazie per le tue informazioni però! :)
jwbensley,

Hai dimenticato di dire, ottima idea con l'opzione -x! Grazie!
jwbensley,

1
ifdownè un programma di alto livello che fa molto di cui potresti aver bisogno. ifconfig eth0 downè più portatile e può sempre essere eseguito, ma non esegue le attività di pulizia che ifdownpotrebbero essere eseguite .
Gilles 'SO- smetti di essere malvagio' l'

Non intendo suggerirti di usare ifconfigtutto il tempo, evitando ifup/down. L'ho suggerito solo come passaggio per la risoluzione dei problemi. A quanto ho capito il problema, si è scoperto che era il risultato dell'uso ifconfiginvece di ifup/down, confondendo così i meccanismi di alto livello. Ma non lo sapevo quando ho pubblicato la mia risposta.
Warren Young,

20

L'ho visto prima quando ethX non era configurato correttamente /etc/network/interfaces. Questo ha bisogno di qualcosa come: -

auto eth0
   iface eth0 inet dhcp

Anche con un /etc/network/interfacesfile configurato in modo errato , puoi comunque eliminare eth0 con:

$ sudo ip link set eth0 down

Questo è esattamente quello che mi è successo. Ho dimenticato di aggiungerlo a auto. Grazie.
Mike,

2

Per chiunque abbia problemi con questo problema:

Ho controllato il file ifstate. "Nome-interfaccia" su / run / network.

Era vuoto, quindi ho incluso il file "nome-interfaccia" (eth0) in ifstate. File "nome-interfaccia" su / run / network.


1

Aggiungi eth0=eth0a /run/network/ifstate. Questo ha funzionato per me


0

Quello che ho trovato mi ha aiutato a chiamare il rmcomando per rimuovere il file di blocco all'interno/run/network/

Fai ls -lae dovresti vedere un .ifstatefile nascosto o qualcosa con quel nome.

Rimuovi quello e poi prova: ifdown && ifup

Se sei preoccupato potresti rompere qualcosa, fai una copia di quel file fuori dalla directory e rimuovi quello all'interno della directory.

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.