it-swarm-eu.dev

Nelze ifdown eth0 (hlavní rozhraní)

Nemohu ifdown rozhraní na Debianu 6.0.5:

[email protected]:/etc/network$ Sudo ifdown eth0 && Sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.

[email protected]:/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

Jak požaduje marco:

[email protected]:/etc/network/$ cat /run/network/ifstate 
lo=lo
eth1=eth1
53
jwbensley

Zkontrolujte obsah souboru /run/network/ifstate. ifup a ifdown pomocí tohoto souboru si všimněte, která síťová rozhraní lze přenést nahoru a dolů. ifup lze tedy snadno zaměnit, když se k vyvolání rozhraní používají jiné síťové nástroje (např. ifconfig).

Od man ifup

Program vede záznamy o tom, zda jsou síťová rozhraní nahoru nebo dolů. Za výjimečných okolností se tyto záznamy mohou stát nekonzistentními se skutečnými stavy rozhraní. Například rozhraní, které bylo vytvořeno pomocí ifup a později dekonfigurováno pomocí ifconfig, bude stále zaznamenáno jako up. Chcete-li to vyřešit, můžete použít --force možnost vynutit ifup nebo ifdown ke spuštění příkazů pro konfiguraci nebo dekonfiguraci navzdory tomu, co považuje za aktuální stav rozhraní.

56
Marco

ifdown je program na vysoké úrovni, který dělá spoustu věcí, které možná nepotřebujete. Navíc není k dispozici všude. Přenosnější způsob by pro vás mohl fungovat:

$ Sudo ifconfig eth0 down

Pokud to potom nemůžete ifup, pravděpodobně máte nějaký problém s konfigurací. Ručně vychováváte pomocí ifconfig eth0 up v tom případě pravděpodobně není to pravé. Na Debianu je ifup binární spustitelný soubor, takže asi budete muset strace, abyste zjistili, kde je zavěšen:

$ Sudo strace -e open ifup eth0

To vám řekne, které soubory ifup se otevírají, zatímco to funguje, což by mohlo vést k problému.

V jiných systémech (např. RHEL a deriváty) je ifup skript Shell, takže je mnohem snazší ladit:

# sh -x `which ifup` eth0

Spuštění skriptu Shell pomocí sh -x umožňuje tisknout každý řádek, který běží, takže můžete sledovat provedení.

33
Warren Young

Už jsem to viděl, když ethX nebyl správně nakonfigurován v /etc/network/interfaces. To potřebuje něco jako: -

auto eth0
   iface eth0 inet dhcp

I s nesprávně nakonfigurovaným /etc/network/interfaces soubor, stále můžete snížit eth0 pomocí:

$ Sudo ip link set eth0 down
20
Alex Leach

Pro každého, kdo bojuje s tímto problémem:

Zkontroloval jsem soubor ifstate. "Interface-name" v/run/network.

Bylo prázdné, takže jsem do ifstate vložil "interface-name" (eth0). "Interface-name" do/run/network.

2
user9885365

Přidat eth0=eth0 to /run/network/ifstate. To pro mě fungovalo

1
Jeroen

Zjistil jsem, že mi pomohl zavolat příkaz rm a odstranit soubor zámku uvnitř /run/network/

Do ls -la a měli byste vidět skryté .ifstate soubor nebo něco pod tímto jménem.

Odstraňte to a zkuste: ifdown && ifup

Pokud se obáváte, můžete něco rozbít, jen si vytvořte kopii tohoto souboru mimo adresář a odeberte soubor uvnitř adresáře.

0
Hunter Lowe