Nie mogę ifdown
interfejsu w Debianie 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
Zgodnie z wnioskiem marco:
user@box:/etc/network/$ cat /run/network/ifstate
lo=lo
eth1=eth1
debian
networking
jwbensley
źródło
źródło
/run/network/ifstate
zawieraOdpowiedzi:
Sprawdź zawartość pliku
/run/network/ifstate
.ifup
iifdown
użyj tego pliku, aby zanotować, które interfejsy sieciowe można uruchamiać w górę iw dół. W ten sposóbifup
można łatwo pomylić, gdy inne narzędzia sieciowe są używane do wywołania interfejsu (npifconfig
.).Od człowieka, jeśli
źródło
eth0=eth0
do/run/network/ifstate
dostać to rozpoznać interfejs i skonfigurować go poprawnie. Ta odpowiedź pomogła mi wskazać plik, ale przestałem sugerować ten dodatek, co rozwiązało mój podobny problem.auto
w/etc/network/interfaces
? Powinien pojawić się/run/network/ifstate
bez potrzeby ręcznej modyfikacji pliku.--force
była dla mnie odpowiedź; okazało się,ifup
że nie wywołało interfejsu przede wszystkim z powodu niepowodzenia polecenia/etc/network/if-pre-up.d
; na szczęście w ogóle mam sieć!ifdown
to program wysokiego poziomu, który wykonuje wiele rzeczy, których możesz nie potrzebować. Ponadto nie jest dostępny wszędzie. Bardziej przenośny sposób może Ci pomóc:Jeśli nie możesz tego
ifup
zrobić, prawdopodobnie masz problem z konfiguracją. Ręczne przedstawienie tegoifconfig eth0 up
prawdopodobnie nie jest właściwe w tym przypadku. Na Debianieifup
jest wykonywalnym plikiem binarnym, więc prawdopodobnie będziesz musiał tostrace
zrobić, aby dowiedzieć się, gdzie się rozłącza:To powie ci, które pliki
ifup
otwierają się podczas działania, co może wskazać ci problem.W innych systemach (np. RHEL i pochodne)
ifup
jest skrypt powłoki, więc o wiele łatwiej jest debugować:Uruchomienie skryptu powłoki
sh -x
powoduje, że wypisuje on każdą uruchomioną linię, dzięki czemu można śledzić wykonanie.źródło
sudo ifconfig eth0 down && sudo ifconfig eth0 up
który przeskakiwałby interfejs w górę iw dół, ale próbowałem ręcznie uruchomić skrypt if-up, który pisałem, ale to nie działało. Po zaktualizowaniu mojego pliku / etc / network / run / ifstate, ifdown / up działa teraz. Dziękuję za informację! :)ifdown
to program wysokiego poziomu, który robi wiele rzeczy, których możesz potrzebować.ifconfig eth0 down
jest bardziej przenośny i zawsze można go uruchomić, ale nie wykonuje on zadań czyszczenia, któreifdown
mogłyby wykonać.ifconfig
cały czas, unikającifup/down
. Zasugerowałem to tylko jako krok do rozwiązania problemu. Jak rozumiem problem, okazało się, że jest on wynikiem użyciaifconfig
zamiastifup/down
, co dezorientuje mechanizmy wysokiego poziomu. Ale nie wiedziałem o tym, kiedy opublikowałem swoją odpowiedź.Widziałem to wcześniej, gdy ethX nie był poprawnie skonfigurowany
/etc/network/interfaces
. To wymaga czegoś takiego:Nawet przy nieprawidłowo skonfigurowanym
/etc/network/interfaces
pliku nadal możesz obniżyć eth0 za pomocą:źródło
auto
. Dzięki.Dla każdego, kto zmaga się z tym problemem:
Sprawdziłem plik ifstate. „Nazwa-interfejsu” w / run / network.
Był pusty, więc dołączyłem plik „nazwa-interfejsu” (eth0) do pliku ifstate. „Nazwa-interfejsu” w katalogu / run / network.
źródło
Dodaj
eth0=eth0
do/run/network/ifstate
. To zadziałało dla mnieźródło
To, co znalazłem pomogło mi, to wywołać
rm
polecenie, aby usunąć plik blokady/run/network/
Zrób
ls -la
i powinieneś zobaczyć ukryty.ifstate
plik lub coś pod tą nazwą.Usuń to, a następnie spróbuj:
ifdown && ifup
Jeśli martwisz się, możesz coś zepsuć, po prostu zrób kopię tego pliku poza katalogiem i usuń ten z katalogu.
źródło