Я потратил слишком много времени, чтобы понять это, и хотел поделиться.
Простая задача: добавить статический IP-адрес ко второму из 4 сетевых адаптеров на моем сервере.
Для начала я следовал приведенным здесь инструкциям в разделе Назначение статического IP-адреса: https://help.ubuntu.com/14.04/serverguide/network-configuration.html
interfaces
file:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em1
iface em1 inet dhcp
auto em2
iface em2 inet static
address 172.24.0.9
netmask 255.255.0.0
Затем я запускаю sudo ifup em2
в соответствии с инструкциями.
Сначала это, казалось, работало. ifconfig
правильно показал интерфейс, и я смог проверить связь с устройствами в сети. ОДНАКО примерно через минуту назначенный статический IP-адрес исчезает. Адрес потерян, а машина недоступна. Это происходит снова и снова, независимо от того, как часто я поднимаю или выключаю интерфейс. Почему это происходит?
Проблемой был Администратор сети. NM, как предполагается, игнорирует явные интерфейсы в /etc/network/interfaces
файл. Однако кажется, что необходимо ПЕРЕЗАПУСТИТЬ сервис:
$ sudo service network-manager restart
$
$ nmcli dev status
DEVICE TYPE STATE
p1p2 802-3-ethernet unavailable
p1p1 802-3-ethernet unavailable
em4 802-3-ethernet unavailable
em3 802-3-ethernet unavailable
em2 802-3-ethernet unmanaged
em1 802-3-ethernet unmanaged
И теперь статический IP не перезаписывается Администратором сети. "Неуправляемое" состояние 2-го интерфейса (или безотносительно интерфейса можно продолжать работать) - то, что мы ищем.
tl; доктор: После добавления интерфейса к interfaces
файл, перезапустите network-manager
сервис.
Просто избавьтесь от двух "если... fi" блоки в предварительном запуске и постостановка в/etc/init/networking.conf так, чтобы "сервис, объединяющий перезапуск в сеть" для работы снова.