«Ответы RTNETLINK: файл существует» / etc / network / interfaces Не содержит 2 шлюза, так что не так?

14

Это /etc/network/interfacesсодержимое моего файла

Единственный способ, которым это вступает в силу - перезагрузка системы.

Я пытаюсь сделать это вручную. Мои попытки ниже.

auto eth0
    iface eth0 inet static
           address 192.168.1.57
           netmask 255.255.255.0
           gateway 192.168.1.1
           up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
           down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
           up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
           down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

Сначала попытался запустить sudo ifup eth0

и я получаю

RTNETLINK answers: File exists
Failed to bring up eth0.

/etc/network/interfacesТолько работа , когда я перезагрузить систему

Кроме этого я пробовал

sudo /etc/init.d/networking restart

sudo service network-manager restart

sudo service networking restart

Но ни один из них не поднимет изменения в interfacesфайле

Мой единственный вариант был, sudo ifup eth0и это дает вышеуказанную ошибку.

что случилось?

Wolfgang
источник

Ответы:

8

Отредактируйте файл конфигурации, чтобы удалить пробелы перед ifaceстрофой, чтобы он выглядел следующим образом:

auto eth0
iface eth0 inet static
   address 192.168.1.57
   netmask 255.255.255.0
   gateway 192.168.1.1
   up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
   down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
   up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
   down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

Сообщение, которое вы получаете, просто указывает на то, что интерфейс уже подключен, так что вам нужно это сделать, ifdownпрежде чем сделать ifup. Тем не менее, вы должны быть осторожны, если вы подключаетесь через ssh - вы можете заблокировать себя. Это способ сделать это:

sudo ifdown eth0 && sudo ifup eth0

Обратите внимание, как эти две команды выполняются в одной строке. И просто предосторожность, убедитесь, что вы можете получить доступ к консоли сервера или перезагрузить сервер, если что-то пойдет не так.

dtoubelis
источник
3
работает sudo ifdown eth0дает ifdown: interface eth0 not configuredи работает sudo ifdown eth0 && ifup eth0 дает то же самое
Вольфганг
1
@wolfgang, попробуйте удалить пробелы перед ifaceстрофой в вашем /etc/network/interfacesфайле и ifdown/ifupповторите попытку .
dtoubelis 22.09.15
Это сработало! не ожидал пробелов, прежде чем ifaceсоздать такое большое дело. не могли бы вы отредактировать это в своем ответе, чтобы он мог кому-то помочь? и должно быть sudoдо ifup-> в sudo ifdown eth0 && sudo ifup eth0противном случае я получаю некоторую permission deniedошибку
Вольфганг
1

Попробуйте найти / run / network / ifstate и измените его, добавив eth (n) = eth (0), если вы не видите там нужного eth.

Пример:

$ cat /run/network/ifstate 
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1

После этого используйте команду sudo ifdown eth (n), а затем sudo ifup eth (n).

Алекс
источник
1

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

ifconfig eth0 down
ifconfig br0 down
rmmod e1000e              # or whatever module your nic uses
modprobe e1000e
service networking start

или просто перезагрузиться.

Kurt
источник
0

Я только столкнулся с этой проблемой, и ни одно из вышеупомянутых решений не работало для меня. Я не мог измениться, /run/network/ifstateпотому что он был немедленно возвращен в прежнее состояние. Также sudo ifdown eth0 && sudo ifup eth0не работал.

Затем я обнаружил следующую команду:

sudo ip addr flush dev eth0

который решил проблему.

digijay
источник