Статический IP в Ubuntu через netplan: пошаговая настройка
Калькулятор подсети (CIDR)
192.168.1.10/24 — получите маску, адрес сети, broadcast и диапазон хостов.Чтобы задать статический IP в Ubuntu, отредактируйте YAML-файл в /etc/netplan/, укажите адрес, шлюз и DNS, затем примените командой sudo netplan apply. Ниже — полная последовательность с безопасной проверкой конфигурации, чтобы не потерять доступ к серверу.
Шаг 1. Определите имя интерфейса
Netplan управляется по имени сетевого интерфейса. Узнаем его:
ip -br addr
Типичные имена: eth0, ens3, enp1s0. Запомните имя активного интерфейса с текущим адресом.
Шаг 2. Найдите файл конфигурации netplan
ls /etc/netplan/
Обычно там один файл: 01-netcfg.yaml, 50-cloud-init.yaml или 00-installer-config.yaml. Сделайте резервную копию:
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
Шаг 3. Опишите статический адрес
Откройте файл в редакторе:
sudo nano /etc/netplan/50-cloud-init.yaml
Приведите содержимое к виду (замените имя интерфейса и адреса на свои):
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: false
addresses:
- 203.0.113.10/24
routes:
- to: default
via: 203.0.113.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
Пояснения к параметрам:
| Параметр | Назначение |
|---|---|
dhcp4: false |
отключает автоматическое получение адреса |
addresses |
IP с префиксом маски (/24 = 255.255.255.0) |
routes → via |
адрес шлюза по умолчанию |
nameservers |
DNS-серверы |
Важно: YAML чувствителен к отступам — используйте пробелы, а не табуляцию.
Шаг 4. Проверьте синтаксис
Перед применением проверьте конфиг:
sudo netplan generate
Если ошибок нет — команда завершится молча.
Шаг 5. Примените с защитой от разрыва связи
На удалённом сервере используйте try — он откатит изменения через 120 секунд, если вы не подтвердите:
sudo netplan try
Если связь сохранилась, нажмите Enter для подтверждения. Для окончательного применения:
sudo netplan apply
Шаг 6. Проверьте результат
ip -br addr show ens3
ip route
ping -c 3 1.1.1.1
Убедитесь, что адрес назначен, шлюз в таблице маршрутов есть, а пинг проходит.
Несколько адресов и отдельная приватная сеть
Netplan позволяет назначить на интерфейс сразу несколько адресов — например, публичный и приватный для связи между вашими серверами:
network:
version: 2
ethernets:
ens3:
dhcp4: false
addresses:
- 203.0.113.10/24
routes:
- to: default
via: 203.0.113.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
ens4:
dhcp4: false
addresses:
- 10.0.0.5/24
Здесь ens3 — публичный интерфейс со шлюзом, а ens4 — приватная сеть без маршрута по умолчанию (шлюз задаётся только на одном интерфейсе).
Проверка синтаксиса и права доступа
С Ubuntu 22.04 netplan предупреждает о слишком открытых правах на конфиг. Ограничьте доступ:
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
Если после netplan generate появляются ошибки об отступах — проверьте, что используются только пробелы. Быстро найти табуляцию можно так:
grep -nP '\t' /etc/netplan/50-cloud-init.yaml
Частые вопросы
Что означает /24 в адресе?
Это длина префикса маски подсети. /24 = 255.255.255.0, /16 = 255.255.0.0. Значение берите из данных провайдера.
Я потерял связь после apply — что делать?
Подключитесь через KVM-консоль сервера, восстановите резервную копию (cp ...bak) и выполните netplan apply. Поэтому всегда используйте netplan try на удалёнке.
networkd или NetworkManager — что выбрать?
На серверах используется networkd (renderer по умолчанию). NetworkManager чаще на десктопах.
Как добавить второй IP на интерфейс?
Добавьте ещё одну строку в addresses, например - 203.0.113.11/24. Netplan поддерживает несколько адресов.
Изменения сохраняются после перезагрузки? Да, netplan-конфиг применяется при старте системы, статический адрес будет постоянным.
Разворачиваете сервер и нужен статический публичный IP из коробки? Выберите VPS на Linux в разделе аренда VPS или закажите Администрирование серверов.
