Rozwiązywanie „odpowiedzi RTNETLINK: plik istnieje” podczas działania ifup

43

Miałem ten problem, kiedy dostałem nowy klucz Wi-Fi i widziałem kilka osób z tym samym problemem. Zasadniczo, gdy mam skonfigurowany jeden interfejs i chcę zamienić na inny, pojawia się ten błąd:

Odpowiedzi RTNETLINK: Plik istnieje
Nie można uruchomić eth0

lub coś podobnego.

/etc/network/interfaces plik:

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
źródło
1
W systemie Linux nie można mieć więcej niż jednej domyślnej bramy. W szczególności nie można mieć tej samej domyślnej bramy na dwóch różnych interfejsach. I nie możesz mieć tej samej sieci na dwóch różnych interfejsach.
ceving
@ceving nie ma problemu z posiadaniem dwóch interfejsów w tej samej sieci. Nie ma również problemu, jeśli te dwa interfejsy mają tę samą bramę. Tabela routingu jest analizowana ściśle i można sobie wyobrazić, że wpisy są destination IP -> interface. W ten sposób zostanie wysłany do bramy przez interfejs, który najpierw analizuje (od dołu) w tablicy routingu.
George
w przypadku IPV6 zawsze należy dodać długość sieci: xxxx: xxxx: ... :: 1/64 na adresie
fcm

Odpowiedzi:

46

Jeśli rozwiązanie dostarczone przez @ theoB610 nadal nie działa, może być konieczne przepłukanie wlan0urządzenia przed ifupi ifdown.

sudo ip addr flush dev wlan0

Ten problem nie jest zbyt specyficzne malinowy Pi, podobnie wystąpił błąd i rozpuszczono w sieciach przewodowych w o (skąd pochodzi roztwór do mojego problemu z PI).

Ébe Isaac
źródło
1
Miałem ten problem na serwerze HP ProLiant (!) I to rozwiązało.
sudo
1
Świetne rozwiązanie. Podstawowym problemem jest to, że niektóre wcześniejsze konfiguracje, automatyczne lub ręczne (takie jak uruchamianie ifconfig z linii cmd) wciąż się utrzymują. Polecenie opróżnienia rozwiązuje tę sytuację.
kmarsh
1
Miałem ten problem, gdy występują zniekształcone /etc/sysconfig/network-scripts/ifcfg-*pliki, powodowane przez NetworkManager, który nie lubi niektórych ustawień i tworzy plik zastępczy, tworząc w ten sposób wiele dodatkowych plików i powodując błąd RTNETLINK answers: File exists. Usunięcie uszkodzonych (tych, które nie są wyświetlane jako profil) wydaje się być rozwiązaniem.
Wilf,
2
Nigdy nie kopiuj-wklej tego na serwerze produkcyjnym. Zamieniłem wlan0 na eth0 i interfejs natychmiast się zawiesił i nie chcę wracać.
Fusseldieb
1
Ciekawe, że nikt warunkiem najprostsza i najbezpieczniejsza metoda reguły: reboot. Na przykład z interfejsem opróżniania miałem problemy - mój interfejs / adres IP spadł i mogłem połączyć się tylko bezpośrednio z konsolą ... więc ponowne uruchomienie zawsze jest dla mnie dobrym rozwiązaniem.
stamster
24

Myślę, że rozwiązanie można znaleźć w Rozwiązaniu „Odpowiedzi RTNETLINK: Plik istnieje” podczas uruchamiania ifup (blog Lennarta); z pewnością to dla mnie naprawiło.

Zasadniczo możesz mieć przypisaną tylko jedną bramę w pliku interfejsów. Usuń wszystkie zduplikowane linie, które określają bramę, aby pojawiła się tylko raz.

Zmodyfikowany plik / 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

Podziękowania dla Lennarta za rozwiązanie tego problemu!

avidreader610
źródło
Natknąłem się na tę odpowiedź za pośrednictwem Google. To właśnie działało dla mnie na maszynie Wirtualnej Ubuntu na Hyper-V
abhijit
8

Rozwiązałem:

sudo ifup --ignore-errors wlan0

po tym poleceniu ifdown i ifup zaczęły działać poprawnie.

mauretto
źródło
Jest to przydatne, gdy „ponowne uruchomienie sieci usług” kończy się niepowodzeniem, dzięki. :)
Adambean
1

kroki:

1 check-> ip route(jeśli domyślna trasa ip jest inna niż wymagany interfejs, wykonaj kroki 2d i 3)

2 sudo ip route del default(usuń domyślny interfejs)

3 sudo ip route add default via ip_address dev interface_name(dodaj wymagany interfejs w ten sposób)

Rahul Patil
źródło
0

W moim przypadku nadal działało inne połączenie - kiedy zdjąłem ten interfejs za pomocą ifdown eth0, jedno, którym byłem zainteresowany (wlan0), wyszło czysto.

Nie polecam używania opcji --ignore-error

tamale
źródło
0

Natknąłem się na to, bawiąc się z VMWare vCenter. Jeśli jesteś w tej samej łodzi, powinieneś zainstalować VMWare Tools, perl i net-tools z menedżerem pakietów przed utworzeniem szablonu / migawki maszyny wirtualnej.

turiyag
źródło
-1

Wymuś de / konfigurację

ifdown --force --verbose ethX && ifup --force --verbose ethX
Nico
źródło