Иногда устройству в сети нужен постоянный IP-адрес — например, если вы настраиваете сервер, VPN или систему хранения. В этой статье разберём, как закрепить IP-адрес за устройством в Ubuntu 22.04 с помощью утилиты Netplan.
Всякий раз, когда вы подключаетесь к сети, устройству автоматически присваивается IP — чаще всего временный, выданный сервером DHCP (например, роутером). Такой адрес может поменяться после перезагрузки или через день-два, и это нормально для ноутбуков, телефонов и других клиентских устройств.
Но если вы настраиваете сервер, которому важно быть на связи по одному и тому же адресу — без статического IP не обойтись. Представьте, что вы подняли веб-сайт, настроили доступ по домену, а IP внезапно поменялся. Сайт станет недоступен. То же самое касается SSH, файловых хранилищ или API.
→ Статический IP задаётся вручную. Он всегда остаётся одним и тем же. Это надёжно, но требует внимания: нельзя просто так воткнуть адрес, нужно быть уверенным, что он свободен.
→ Динамический IP выдаётся автоматически. Удобно, но нестабильно для задач, где важна постоянная связность.
→ Резервирование IP — компромиссный вариант. IP по-прежнему раздаёт DHCP, но привязывает его к MAC-адресу. Работает только если вы управляете маршрутизатором.
Netplan — это инструмент, с помощью которого Ubuntu с версии 18.04 настраивает сеть. Он использует конфигурационные файлы в формате YAML и позволяет задавать статический IP напрямую.
В терминале выполните:
ip a
Найдите активный интерфейс — он может называться enp0s3, eth0 или иначе.
Файлы находятся в папке /etc/netplan/. Обычно это 00-installer-config.yaml или 01-network-manager-all.yaml.
Откройте нужный файл на редактирование:
sudo nano /etc/netplan/01-network-manager-all.yaml
Вставьте пример конфига:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Обратите внимание:
→ renderer: networkd — если вы работаете без графики, NetworkManager — если с ней.
→ addresses: задаём нужный IP и маску.
→ routes: указываем шлюз по умолчанию.
→ nameservers: прописываем DNS-серверы.
Важно: следите за отступами! YAML этого не прощает.
sudo netplan apply
Если что-то пошло не так, добавьте --debug, чтобы увидеть подробности:
sudo netplan apply --debug
Проверьте результат:
ip a show enp0s3
ping 8.8.8.8