Ubuntu Server 20.04 и 18.04 - Установка статического IP

Есть в 20й и 18й версии сервера один момент, с непривычки понятный не каждому. Теперь, для того чтобы без лишних телодвижений поменять сетевые настройки необходимо править файлик в каталоге /etc/netplan/. В Ubuntu Server 20.04 - установка статического IP, стандартное действие проделываемое практически с каждым сервером. Вы можете либо выдавать адрес серверу через DHCP, избегая необходимости лезть в настройки сети сервера. Но в случае если DHCP сервер упал, работа может встать до его повторного введения в строй. Поэтому более разумно, если у вашего сервера только один Ethernet порт, настраивать на нем статический IP адрес, не забывая при этом настраивать резервирование на DHCP сервере.
Слышали ли вы ранее о netplan? Далеко не факт. Это средство настройки сетевых интерфейсов, впервые появившееся в убунту начиная с версии 17.10. Эта утилита пришла на замену файлу /etc/network/interfaces, который ранее применялся настройки интерфейсов.
Данные которые мы будем настраивать
IP Адрес: 192.168.1.100
Маска: 24 (она же 255.255.255.0)
Шлюз: 192.168.1.1
DNS: 192.168.1.1
Узнаём имя нашего интерфейса
ifconfig -a
#или
ip addr show
Контент доступен в платной версии
Эта часть материала открывается при платном доступе.
Как видим, имя нашего порта ens160. Его имя так же может варьироваться от ситуации к ситуации.
Изменяем файл настроек netplan
Файл со всеми параметрами находится в директории /etc/netplan

В нашем случае, его название 50-cloud-init.yaml. У вас он может называться по другому. Netplan считывает информацию из всех файлов в папке, попадающих под маску *.yaml. То есть на каждый интерфейс у вас может быть отдельный файл для удобства. Если файла нету, необходимо его сгенерировать командой sudo netplan generate. При наличии файла, открываем его на редактирование с правами рута
sudo nano /etc/netplan/*.yaml
Так выглядят стандартные настройки интерфейса, сразу после установки сервера, когда при установке выбирается dhcp
network:
ethernets:
ens160:
addresses: []
dhcp4: true
optional: true
version: 2
Нам необходимо привести настройки к следующему виду:
network:
ethernets:
ens160:
dhcp4: no
dhcp6: no
addresses: [192.168.1.100/24, ]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, ]
version: 2

Применяем изменения
Теперь осталось только применить изменения
sudo netplan apply
Так же если вы не уверены на 100% в правильности своих настроек, сначала можно использовать sudo netplay try. Эта команда применит настройки и если всё правильно, выдаст запрос на их сохранение. Если на этот запрос не ответить в течении 2х минут, настройки вернутся к изначальному состоянию. Минус этого способа, если вы конфигурируете сервер например по сети через ssh, то смена IP адреса - приведет к разрыву соединения, и ответить на запрос о подтверждении настроек вы уже не сможете. Но вы сможете подключиться к серверу по его новым реквизитам, убедиться что всё работает, и по истечении 2х минут, когда настройки сбросятся на старые, применить их окончательно.
Данные нехитрые манипуляции позволят нам настроить статический IP адрес сервера, который будет сохранен после перезагрузки.
Полезные ссылки: