Редактирование сетевых интерфейсов без перезагрузки системы

23

Я хотел бы внести некоторые изменения в мою сетевую конфигурацию, отредактировав мой /etc/network/interfacesфайл. Какой самый чистый способ внести изменения в этот файл и заставить их вступить в силу, без перезагрузки? Как правило, я делал:

  1. Редактировать файл
  2. service networking restart

Но у меня сложилось впечатление, что это не «правильный» способ внесения подобных изменений.

Лорин Хохштайн
источник
перезапуск службы сети почти = /etc/init.d/networking перезапуск.
Шантану

Ответы:

11

Завершите работу сетевого интерфейса, используя

sudo ifdown eth0

(замените eth0интерфейс, который вы хотите изменить) и снова включите его, используя

sudo ifup eth0
Флориан Диш
источник
4
Это не сработало для меня. Это просто дало мне ошибку "eth0 не настроен". Мне пришлось перезагрузить систему, чтобы изменения вступили в силу 12.04.
ДжонМерлино
4

В Ubuntu Server 16.04 вы должны использовать команду ip для очистки адреса перед перезапуском сети, в противном случае любые изменения адреса в файле интерфейсов не вступят в силу:

$ sudo ip addr flush interface-name
$ sudo systemctl restart networking

Я получил этот ответ из этой полезной статьи

Бриан
источник
Отлично, это должно быть ответом на вопрос.
Дрю
2

Остановите все интерфейсы, используя

sudo /etc/init.d/networking stop

Настройте (отредактируйте) свои интерфейсы, как хотите, затем

Запустите их снова

sudo /etc/init.d/networking start

Перезагрузка не требуется.

Ачу
источник
3
Это не сработало и в Ubuntu 12.04. Работала только система перезагрузки.
ДжонМерлино
0

Почему вы не думаете, что это правильный путь. Подумайте, что может сделать Ubuntu дополнительно во время загрузки? В Ubuntu есть список сервисов, которые нужно запускать во время загрузки, у каждого сервиса есть список последовательных команд для запуска. Ubuntu просто запускает сетевой сервис через скрипт /etc/init.d/networking, который содержит некоторые команды, необходимые для запуска сетевого сервиса. Таким образом, если какое-либо изменение необходимо применить к вашей сети, вам необходимо перезапустить службу, а затем вызвать последовательные команды вашей службы.

Шантану
источник
Поскольку перезагрузка гарантированно удалит все настроенные мной интерфейсы, и я обеспокоен тем, что если я удалю интерфейс из файла интерфейсов, то перезапуск сетевого сценария не избавится от него.
Лорин Хохштайн
вы уверены? любое изменение в сети работает для меня с помощью sudo /etc/init.d/networking restart.
Шантану
Например, если я создаю vlan с тегом (например, eth0.123), он не будет автоматически уничтожен при перезапуске сети
Lorin Hochstein
Судо eth0 вниз --- Судо eth0 вверх
shantanu
/etc/init.d/networking перечитать все файлы конфигурации сети и обновить все настройки, почему он должен уничтожить созданный интерфейс? если вы меняете свой ip или dns или такую ​​информацию, то / etc / ... достаточно, если вы создаете виртуальную локальную сеть, вам нужно перезапустить интерфейс Ethernet (sudo eth0 down, затем sudo eth0 up).
Шантану
0

/etc/network/interfaces контролирует инструменты ifupdown.

Поэтому после внесения изменений вы можете просто сказать, например sudo ifup eth0.

poolie
источник
0

На самом деле ни одна из этих работ. Проверено на Ubuntu 16.10. это не имело никакого эффекта.

  • ifdown ens3 и ifup ens3
  • остановка и запуск сервисной сети
  • перезагрузка сервисной сети
  • systemctl остановите сеть.сервис и затем начните снова.

Через все это вернулся старый dhcp ip, а не статический. Интересно, это намеренно?

СЛС
источник