Решение «ответы 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
avidreader610
источник
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 (блог Леннарта); это, конечно, исправило это для меня.

По сути, вы можете иметь только один шлюз, назначенный в вашем файле интерфейса. Удалите все повторяющиеся строки, которые определяют шлюз, чтобы он появлялся только один раз.

Измененный файл / 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

Вся благодарность Леннарту за решение этой проблемы!

avidreader610
источник
Наткнулся на этот ответ через гугл. Это то, что у меня работало на виртуальной
машине
8

Я решил:

sudo ifup --ignore-errors wlan0

после этой команды ifdown и ifup начали работать правильно.

mauretto
источник
Это полезно после сбоя «перезагрузки сети», спасибо. :)
Adambean
1

шаги:

1 check-> 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-errors

Тамале
источник
0

Я наткнулся на это, пока возился с VMWare vCenter. Если вы находитесь в одной лодке, вы должны были установить VMWare Tools, perl и net-tools вместе с менеджером пакетов, прежде чем создавать шаблон / снимок виртуальной машины.

turiyag
источник
-1

Force de / configuration

ifdown --force --verbose ethX && ifup --force --verbose ethX
Нико
источник