Вирішення "відповідей RTNETLINK: файл існує" під час запуску ifup


43

У мене була ця проблема, коли я отримав свій новий Wi-Fi ключ і побачив декількох людей з тим же питанням. В основному, коли у мене налаштований один інтерфейс і потрібно перейти на інший, він видає цю помилку:

Відповіді RTNETLINK: Файл існує
Не вдалося вивести eth0

чи щось подібне.

/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

1
У Linux не може бути більше одного шлюзу за замовчуванням. Зокрема, ви не можете мати однаковий шлюз за замовчуванням на двох різних інтерфейсах. І не можна мати однакову мережу на двох різних інтерфейсах.
закінчення

@ceving немає жодної проблеми мати два інтерфейси в одній мережі. Також немає проблем, якщо ці два інтерфейси мають однаковий шлюз. Таблиця маршрутизації розбирається суворо, і ви можете уявити записи destination IP -> interface. Таким чином, він буде відправлений на шлюз через інтерфейс, який він першим розбирає (знизу) в таблиці маршрутизації.
Георгій

якщо мати справу з IPV6, завжди додайте довжину мережі: xxxx: xxxx: ... :: 1/64 за адресою
fcm

Відповіді:


46

Якщо рішення, яке надає @ theoB610, все ще не працює, можливо, доведеться промити wlan0пристрій до ifupі ifdown.

sudo ip addr flush dev wlan0

Ця проблема не надто специфічна для Raspberry Pi, подібна проблема виникла і була вирішена в дротових мережах тут (звідки я отримав рішення для своєї проблеми з Pi).


1
У мене була ця проблема на сервері HP ProLiant (!), І це виправлено.
судо

1
Прекрасне рішення. Основна проблема - це попередня конфігурація, автоматична або ручна (наприклад, запуск ifconfig з cmd-лінії), яка все ще залишається. Команда flush виправляє цю ситуацію.
kmarsh

1
У мене виникла ця проблема, коли виникають неправильно сформовані /etc/sysconfig/network-scripts/ifcfg-*файли, через які NetworkManager не сподобається деяким налаштуванням і створює файл заміни, створюючи таким чином кілька додаткових файлів і спричиняючи помилку RTNETLINK answers: File exists. Видалення зламаних (тих, які не відображаються як профіль), здається, виправлення.
Вільф

2
Ніколи не копіюйте та вставляйте це на виробничий сервер. Я замінив wlan0 на eth0, і інтерфейс негайно вийшов з ладу і не хочу повертатися.
Fusseldieb

1
Цікаво , що жоден з них не передбачено простим і правилом безпечний метод: reboot. Наприклад, з інтерфейсом для промивання у мене виникли проблеми - мій інтерфейс / IP знизився, і я могла підключитися безпосередньо безпосередньо на консолі ... так що перезавантаження - це завжди спосіб для мене.
stamster

24

Я думаю, що рішення можна знайти у вирішенні "відповідей RTNETLINK: файл існує" під час запуску ifup (веб-журнал Lennart); це, безумовно, зафіксувало це для мене.

В основному у вашому файлі інтерфейсів може бути призначений лише один шлюз. Видаліть всі повторювані лінії, що визначають шлюз, щоб він відображався лише один раз.

Файл модифікованого / тощо / мережі / інтерфейсів:

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

Вся вдячність Леннарту за вирішення цього питання!


Натрапив на цю відповідь через Google. Це те, що працювало для мене на Ubuntu VM на Hyper-V
abhijit

8

Я вирішив:

sudo ifup --ignore-errors wlan0

після цієї команди ifdown та ifup почали працювати належним чином.


Це корисно після того, як "перезапуск сервісної мережі" не вдалося, дякую. :)
Адамбій

1

кроки:

1 перевірте-> ip route(якщо за замовчуванням ip route є іншим, ніж потрібний інтерфейс, виконайте 2d та 3-й крок)

2 sudo ip route del default(видаліть інтерфейс за замовчуванням)

3 sudo ip route add default via ip_address dev interface_name(додайте потрібний інтерфейс, як цей)


0

У моєму випадку у мене було ще одне підключення - як тільки я зняв цей інтерфейс з ifdown eth0, той, що мене зацікавив (wlan0), прийшов чисто.

Я не рекомендую використовувати опцію --ignore-error


0

Я наткнувся на це під час возитися з VMWare vCenter. Якщо ви перебуваєте в одному човні, вам слід було встановити інструменти VMWare, perl та net-інструменти з вашим менеджером пакетів, перш ніж робити шаблон / знімок VM.


-1

Форсифікація / конфігурація

ifdown --force --verbose ethX && ifup --force --verbose ethX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.