MyTetra Share
Делитесь знаниями!
Как перечитать (перезагрузить) настройки сетевого интерфейса в Debian?
Время создания: 18.07.2023 09:52
Текстовые метки: linux, debian, сеть, сетевой, интерфейс, перечитать, перезагрузить, перезапустить, обновить, настройки
Раздел: Компьютер - Linux - Сеть в Linux
Запись: xintrea/mytetra_syncro/master/base/168966315922j7qkvloa/text.html на raw.github.com

Как в Debian Linux можно "на лету", без перезагрузки системы, перечитать настройки сетевого интерфейса, если в файле /etc/network/interfaces были внесены какие-то изменения? Например, если был добавлен дополнительный интерфейс eth0:2 с новым IP-адресом?


Надо сразу сказать, что перезагрузка (выключение и последующее включение) базового интерфейса eth0 через утилиту ip, не приведут к нужному результату. То есть, после команд:



ip link set eth0 down

ip link set eth0 up



... новый IP-адрес не появится. Похоже, что эти команды не перечитывают конфигурацию из файла настройки сети, а помнят ту конфигурацию, которая была при запуске системы. И даже перезапуск сетевого сервиса командой:



systemctl restart networking



... и всякие комбинации вышеуказанных команд тоже не приводят к тому, что бы появился дополнительный интерфейс с нужным IP.


Так можно ли в Debian, без перезагрузки системы, перечитать конфигурацию сетевого интерфейса? Да, можно, и делается это не новомодной утилитой ip, а старыми утилитами ifdown и ifup, которые несколько раз пытались исключить из дистрибутива, но каждый раз оказывалось, что без них сетевую подсистему не настроишь.


Для перечитывания конфигурации сети, в Debian можно под пользователем root выполнить команду:



ifdown --all && ifup --all



После чего стоит подождать около 10 секунд, и проверить, появился ли новый дополнительный интерфейс с новым IP.



Кстати, если в конфигах просто меняется IP-адрес, то после команд выключения и поднятия интерфейса тоже нужно выжидать около 10 секунд. Если сразу проверить IP-адрес, то если не учесть что он меняется с задержкой, можно подумать что настройки не сработали и броситься переконфигурировть дальше. А на самом деле все было сделано правильно и надо было просто немного подождать.



Однако иногда вышеприведенные команды просто так не сработают. Возможно, что будет возникать ошибка RTNETLINK answers: File exists даже если все конфиги написаны правильно. В этом случае следует выполнить команду очистки (сброса) настроек сетевого интерфейса:



ip addr flush dev eth0



А после нее уже пытаться опустить и поднять интерфейс.


Данная информация актуальна для Debian вплоть до версии 11, и, возможно, в Debian 12 тоже будет работать.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования