Глиф Учебники

Статический IP через netplan

Справочник · Ubuntu · 3 минуты чтения

Постоянный адрес нужен серверу: к нему подключаются по SSH, на него пробрасывают порты. Закрепить адрес можно двумя способами:

Что узнать заранее

Bash
ip -br -4 addr
ip route show default

Запишите имя интерфейса (например, enp3s0), маску (обычно /24) и адрес шлюза — он стоит после via. Новый адрес выберите в той же сети, но вне диапазона, который роутер раздаёт по DHCP (его видно в настройках DHCP роутера): иначе однажды роутер выдаст этот адрес другому устройству.

Как задать адрес

Способ зависит от выпуска Ubuntu: на сервере без рабочего стола адрес пишут в файл netplan, на компьютере с рабочим столом — в настройки NetworkManager.

Ubuntu Serverфайл netplan

Найдите файл настроек и откройте его:

Bash
ls /etc/netplan/
sudo nano /etc/netplan/50-cloud-init.yaml

Имя файла у вас может быть другим, например 00-installer-config.yaml. Найдите в нём блок своего интерфейса и приведите его к такому виду — с именем интерфейса, адресом и шлюзом из раздела «Что узнать заранее»:

YAML
network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: false
      addresses:
        - 192.168.1.50/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 1.1.1.1]
  • addresses — адрес и маска;
  • routes с to: default — шлюз. Старая запись gateway4 устарела, и netplan выводит о ней предупреждение;
  • nameservers — DNS-серверы: роутер и запасной публичный сервер.

Отступы — только пробелами, как в примере: табуляция в YAML — ошибка.

Оставьте файлу права только для root (имя файла — ваше) и примените настройки:

Bash
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
sudo netplan try

netplan try применяет настройки и ждёт, пока вы нажмёте Enter. Если за 120 секунд подтверждения нет, он возвращает прежние настройки — так ошибка не отрежет сервер от сети. После подтверждения новые настройки действуют и после перезагрузки. Проверьте результат: ip -br -4 addr и ping -c 3 ubuntu.com.

Если вы подключены по SSH и меняете сам адрес сервера, соединение оборвётся, и подтвердить netplan try не получится — через 120 секунд вернётся старый адрес. В этом случае применяйте настройки командой sudo netplan apply и подключайтесь уже по новому адресу. Делайте так, только если есть запасной доступ: консоль в панели хостинга или клавиатура сервера.

Если в начале файла написано, что его создаёт cloud-init и изменения не сохранятся (так бывает на облачных серверах), запретите cloud-init менять сеть. Создайте файл /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg с одной строкой network: {config: disabled}.

Дальше: «Если не работает»

Ubuntu Desktopпараметры или nmcli

На компьютере с рабочим столом сетью управляет NetworkManager. Мышью адрес задают в параметрах системы: «Параметры» → «Сеть» → значок шестерёнки у подключения → вкладка «IPv4» → «Вручную». Впишите адрес, маску, шлюз и DNS, нажмите «Применить», затем выключите и снова включите подключение.

То же командой nmcli (адреса в командах — из примера, подставьте свои):

Bash
nmcli connection show
sudo nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 ipv4.dns "192.168.1.1 1.1.1.1"
sudo nmcli connection up "Wired connection 1"

Имя подключения возьмите из первого столбца nmcli connection show: в русской системе оно тоже по-русски. Вернуть автоматическую настройку:

Bash
sudo nmcli connection modify "Wired connection 1" ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns ""
sudo nmcli connection up "Wired connection 1"

Если не работает