"Відповіді RTNETLINK: Файл існує" / і т.д. / мережа / інтерфейси Чи не містять 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те, що дає вищезгадану помилку.

що не так?

Відповіді:


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

Зауважте, як ці дві команди виконуються в одному рядку. І лише обережність, переконайтеся, що ви можете отримати доступ до консолі сервера або перезавантажити сервер, якщо щось піде не так.


3
біг sudo ifdown eth0дає ifdown: interface eth0 not configuredі працює sudo ifdown eth0 && ifup eth0 дає те саме
wolfgang

1
@wolfgang, спробуйте видалити пробіли перед ifaceстрофою у вашому /etc/network/interfacesфайлі та ifdown/ifupповторіть.
dtoubelis

Це спрацювало! не очікував, що місця раніше ifaceбудуть створювати таку велику справу. ви можете редагувати це у своїй відповіді, щоб це могло допомогти комусь? і повинно бути sudoраніше ifup-> sudo ifdown eth0 && sudo ifup eth0інакше я отримую деяку permission deniedпомилку
wolfgang

1

Спробуйте шукати / запустити / мережу / ifstate, і змініть його, додавши eth (n) = eth (0), якщо ви не бачите потрібного et.

Наприклад:

$ 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

або просто перезавантажити.


0

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

Потім я з'ясував таку команду:

sudo ip addr flush dev eth0

що вирішило проблему.

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