Статический IPv4-адрес: пошаговая настройка¶
Статический адрес нужен, когда IP сервера должен оставаться неизменным: например, для внутренней базы данных, VPN-шлюза или сервера с фиксированной маршрутизацией. В НАЙС.ОС CLOUD это делается не через netplan или nmcli, а через файл .network службы systemd-networkd.
Не меняйте управляющий интерфейс без обратного доступа
Если работаете по SSH, используйте консоль виртуальной машины или согласованное окно обслуживания. Новая конфигурация может удалить текущую DHCP-аренду и маршрут до завершения сеанса. Примеры ниже не являются командами для безусловного выполнения на удалённом сервере.
Предположения примера¶
| Параметр | Иллюстративное значение |
|---|---|
| Интерфейс | ens3 |
| Адрес сервера | 192.0.2.10/24 |
| Шлюз | 192.0.2.1 |
| DNS | 192.0.2.53 |
| Домен поиска | example.test |
Адреса 192.0.2.0/24 зарезервированы для документации, они не предназначены для непосредственного использования в вашей сети. Подставьте реальные адреса из вашего плана адресации.
Шаг 1. Зафиксируйте текущее состояние¶
ip -br addr
ip -4 route
networkctl status ens3
resolvectl status ens3
sudo ls -la /etc/systemd/network
Сохраните прежние профили и вывод в защищённом каталоге (локально и/или в системе резервного копирования). Например:
sudo mkdir -p /root/network-backup
sudo cp -a /etc/systemd/network \
/root/network-backup/network-before-static
Если каталог назначения уже существует, сначала проверьте его содержимое и выберите уникальное имя резервной копии.
Шаг 2. Определите владельца конфигурации¶
networkctl status ens3 должен показывать конфигурацию, управляющую интерфейсом. Если интерфейс настраивается cloud-init — сперва изучите соответствующее руководство и политику источника облачной конфигурации.
Шаг 3. Создайте .network¶
Файл /etc/systemd/network/10-ens3.network:
[Match]
Name=ens3
[Network]
Address=192.0.2.10/24
Gateway=192.0.2.1
DNS=192.0.2.53
Domains=example.test
DHCP=no
Вместо Gateway= допустимо описывать статические маршруты отдельными секциями [Route], если так требует схема сети. Для простого одного шлюза приведённая запись понятнее.
DNS и IP — разные настройки
Назначение IP не гарантирует работающий DNS. systemd-resolved должен быть доступен, а resolv.conf — правильно связан с действующим резолвером. Диагностика: resolvectl status и getent hosts.
Шаг 4. Примените настройки через консоль¶
reload перечитывает конфигурационные файлы, а reconfigure применяет конфигурацию интерфейса. Это не обязательно равнозначно полному перезапуску networkd. Если адрес и маршруты изменились не полностью, исследуйте журнал и решайте вопрос о повторной инициализации интерфейса через консоль; не выполняйте ip link set ens3 down на недоступном удалённом хосте.
Шаг 5. Проверьте каждый уровень¶
networkctl status ens3
ip -4 addr show dev ens3
ip -4 route
ip -4 route get 192.0.2.1
resolvectl status ens3
getent ahostsv4 niceos.ru
Последнюю проверку нужно интерпретировать с учётом исходящей политики iptables и наличия выхода в Интернет. В изолированном контуре проверяйте собственные DNS-имена и ресурсы.
Шаг 6. Убедитесь, что SSH действительно доступен¶
Откройте новое SSH-соединение с компьютера администратора. Не закрывайте старый сеанс до подтверждения нового. После перезагрузки убедитесь, что статические параметры сохранились.
Откат и восстановление¶
Через резервную консоль верните сохранённый профиль либо удалите ошибочный 10-ens3.network, если до изменения его не существовало:
# Ниже пример восстановления ранее сохранённой конфигурации.
# Выберите правильный исходный каталог после просмотра резервной копии.
sudo ls -la /root/network-backup/network-before-static
После восстановления файлов примените networkctl reload и networkctl reconfigure ens3, затем проверьте текущий адрес и маршруты. Не удаляйте все .network-файлы без оценки зависимостей.