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

19

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

  1. Отредактируйте файл
  2. service networking restart

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

    
задан Lorin Hochstein 10.02.2012 в 20:48
источник

6 ответов

10

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

sudo ifdown eth0

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

sudo ifup eth0
    
ответ дан Florian Diesch 10.02.2012 в 21:01
2

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

sudo /etc/init.d/networking stop

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

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

sudo /etc/init.d/networking start

Нет необходимости перезагружаться.

    
ответ дан Achu 10.02.2012 в 21:00
0

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

ответ дан shantanu 10.02.2012 в 20:58
0

/etc/network/interfaces управляет инструментами ifupdown.

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

    
ответ дан poolie 10.02.2012 в 21:02
0

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

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

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

ответ дан SLS 26.07.2017 в 14:54
0

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

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

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

    
ответ дан BrianD 21.10.2017 в 15:58