Настройка сети в Linux: статический IP через nmcli, netplan и ip
Статический IP в Ubuntu задаётся через netplan на сервере и через NetworkManager (nmcli или настройки) на десктопе, а команда ip показывает, что получилось. Главное правило: менять настройки через тот менеджер, который реально управляет сетью, иначе после перезагрузки всё откатится. Ниже примеры для nmcli, netplan, Debian и порядок проверки соединения.

Содержание
Сначала выясните, кто управляет сетью
Половина проблем с настройкой сети в Linux возникает из-за того, что человек правит не тот файл. В системе обычно работает один менеджер сети, и изменения надо вносить именно через него, иначе после перезагрузки всё вернётся.
| Система | Кто управляет | Где настройки | Чем менять |
|---|---|---|---|
| Ubuntu Desktop, Linux Mint, Fedora, Arch с GNOME или KDE | NetworkManager | /etc/NetworkManager/system-connections/, в Ubuntu ещё /etc/netplan/90-NM-*.yaml | nmcli, nmtui, графические настройки |
| Ubuntu Server 24.04 и 26.04 | systemd-networkd через netplan | /etc/netplan/*.yaml | редактор и netplan |
| Debian 13 без графики | ifupdown | /etc/network/interfaces | редактор и ifup, ifdown |
| Fedora Server, RHEL и клоны | NetworkManager | keyfile в /etc/NetworkManager/ | nmcli |
Проверить, что запущено у вас, можно так:
systemctl is-active NetworkManager systemd-networkd
ls /etc/netplan/ 2>/dev/null
cat /etc/network/interfaces 2>/dev/nullКоманда ip: посмотреть адрес, маршруты и временно поменять
Утилита ip из пакета iproute2 есть в любом дистрибутиве и показывает состояние сети независимо от менеджера. Старый ifconfig из net-tools давно не ставится по умолчанию, привыкайте к ip.
ip -br a # интерфейсы и адреса коротко
ip -br link # состояние UP или DOWN, MAC-адреса
ip r # таблица маршрутов, строка default - шлюз
ip -6 r # то же для IPv6
ip neigh # соседи в сети, аналог arp -a Имена интерфейсов предсказуемые: enp3s0 или eno1 для проводной карты, wlp2s0 для Wi-Fi, lo для локальной петли. Через ip можно назначить адрес вручную, но такие изменения живут до перезагрузки или до первой реакции менеджера сети:
sudo ip addr add 192.168.1.50/24 dev enp3s0
sudo ip link set dev enp3s0 up
sudo ip route add default via 192.168.1.1
sudo ip addr del 192.168.1.50/24 dev enp3s0 Временный адрес удобен в двух случаях: быстро проверить гипотезу и поднять сеть на Live USB, где настраивать менеджер ради одного раза нет смысла.
Настройка nmcli: статический IP через NetworkManager
На десктопе и в Fedora статический адрес задают через NetworkManager. Графический путь очевиден, а nmcli выручает на сервере и по SSH. Сначала посмотрите устройства и имена соединений:
nmcli device status
nmcli connection show Соединение и интерфейс не одно и то же: у enp3s0 может быть соединение с именем "Проводное подключение 1" или "netplan-enp3s0". Меняют настройки соединения, после чего его перезапускают:
sudo nmcli connection modify "Проводное подключение 1" \
ipv4.method manual \
ipv4.addresses 192.168.1.50/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "1.1.1.1 77.88.8.8"
sudo nmcli connection up "Проводное подключение 1" Вернуть получение адреса по DHCP:
sudo nmcli connection modify "Проводное подключение 1" ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns ""
sudo nmcli connection up "Проводное подключение 1" Wi-Fi и текстовый интерфейс
Список сетей и подключение с запросом пароля, чтобы он не остался в истории оболочки:
nmcli device wifi list
nmcli --ask device wifi connect "ИмяСети" Если лень запоминать параметры, запустите nmtui: это меню в терминале с теми же возможностями. Когда адаптер вообще не видит сетей, причина обычно в драйвере или блокировке, разбор в статье не работает Wi-Fi в Linux.
Статический IP в Ubuntu Server: пример netplan
На Ubuntu Server сеть описывается YAML-файлами в /etc/netplan/. Netplan превращает их в настройки systemd-networkd или NetworkManager. После установки там обычно лежит 50-cloud-init.yaml. Пример файла со статическим адресом:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
addresses:
- 192.168.1.50/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 77.88.8.8] Отступы только пробелами, табуляция ломает разбор. Ключ gateway4, который встречается в старых инструкциях, устарел: шлюз теперь задаётся через routes с to: default. Файл должен быть доступен только root, иначе netplan выдаст предупреждение. Полный список ключей есть в документации netplan.
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
sudo netplan try # применить с автоматическим откатом через 120 секунд
sudo netplan apply # применить окончательно
sudo netplan get # итоговая конфигурация после разбора всех файлов
sudo netplan status # адреса, маршруты и DNS по интерфейсам Чтобы cloud-init не перезаписал настройки
На облачных и виртуальных серверах cloud-init при загрузке может заново сгенерировать файл сети. Отключите это, создав /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg со строкой network: {config: disabled}, и храните свою конфигурацию в отдельном файле, например 01-static.yaml.
Netplan на Ubuntu Desktop
В настольной Ubuntu netplan тоже есть, но рендерер у него NetworkManager. Соединения, созданные в настройках или через nmcli, сохраняются в файлы вида 90-NM-UUID.yaml. Править их руками не нужно, пользуйтесь nmcli.
Debian 13 без графики: файл interfaces
Минимальная установка Debian по-прежнему использует классический ifupdown. Статический адрес задаётся в /etc/network/interfaces:
auto enp3s0
iface enp3s0 inet static
address 192.168.1.50/24
gateway 192.168.1.1 DNS в этой схеме прописывается в /etc/resolv.conf строками nameserver. Применяйте изменения перезапуском интерфейса: sudo ifdown enp3s0 && sudo ifup enp3s0. Если работаете по SSH, выполняйте обе команды одной строкой, иначе после ifdown связь пропадёт и до ifup дело не дойдёт.
DNS: какие серверы реально используются
В Ubuntu, Fedora и большинстве современных систем запросы идут через systemd-resolved, а в /etc/resolv.conf указан локальный адрес 127.0.0.53. Поэтому смотреть настоящие DNS-серверы нужно так:
resolvectl status
resolvectl query ya.ru Смена серверов, DNS over TLS и очистка кэша вынесены в отдельную статью DNS в Linux, здесь только диагностика.
Проверка соединения по шагам
Идите снизу вверх, от кабеля к сайтам. Так вы сразу поймёте, на каком уровне проблема:
ip -br link- интерфейс в состоянии UP? Если DOWN или NO-CARRIER, проверьте кабель или Wi-Fi.ip -br a- есть ли адрес из вашей сети? Адрес вида 169.254.x.x значит, что DHCP не ответил.ping -c 4 192.168.1.1- отвечает ли шлюз?ping -c 4 1.1.1.1- есть ли интернет по IP?ping -c 4 ya.ru- работает ли DNS? Если по IP пинг есть, а по имени нет, проблема в DNS.
ip route get 1.1.1.1 # через какой интерфейс и шлюз пойдёт пакет
tracepath ya.ru # где теряются пакеты по пути
sudo ss -tulpn # какие порты слушает сама машина
curl -I https://ya.ru # отвечает ли HTTPS Если статический адрес нужен для доступа к машине из локальной сети, например для удалённого рабочего стола или домашнего сервера, альтернатива - резервирование адреса по MAC в DHCP роутера. Тогда на самой машине ничего настраивать не придётся.
Если сеть пропала после изменений
Хуже всего потерять сеть на удалённом сервере. Несколько привычек, которые от этого страхуют:
- На Ubuntu Server всегда применяйте
netplan try, а неapply. Если не подтвердить изменения нажатием Enter, через 120 секунд вернётся старая конфигурация. - Перед правкой копируйте файл:
sudo cp /etc/netplan/50-cloud-init.yaml /root/. - Для NetworkManager держите запасной вариант:
nmcli connection cloneсоздаёт копию соединения, к которой можно вернуться командойnmcli connection up. - У VPS почти всегда есть консоль в панели провайдера. Узнайте, где она, до того как она понадобится.
Если ошиблись в адресе на домашней машине, проще всего вернуть DHCP через графические настройки или nmtui и начать заново. Логи помогают понять причину: journalctl -u NetworkManager -b или journalctl -u systemd-networkd -b.
Не задавайте статический адрес из диапазона, который раздаёт DHCP роутера. Иначе рано или поздно роутер выдаст этот же адрес телефону или телевизору, и начнутся пропадания связи, похожие на проблемы с кабелем. Посмотрите диапазон в настройках роутера и возьмите адрес за его пределами.
Частые вопросы
Почему после перезагрузки статический IP пропал?
Скорее всего, адрес задали через ip addr add, а такие изменения временные. Либо настройки перезаписал cloud-init или другой менеджер сети. Задавайте адрес через nmcli или файл netplan.
Чем netplan try отличается от netplan apply?
try применяет конфигурацию и ждёт подтверждения, а без него через 120 секунд откатывает назад. apply применяет сразу и без страховки.
Как узнать шлюз в Linux?
Командой ip r: адрес после слов default via и есть шлюз по умолчанию.
Можно ли использовать nmcli на Ubuntu Server?
Можно, если поставить NetworkManager и указать в netplan renderer: NetworkManager. Смешивать два менеджера на одном интерфейсе не стоит, выберите один.
Где в Linux ifconfig?
В пакете net-tools, который больше не ставится по умолчанию. Всё то же самое и больше умеет команда ip из iproute2.
Документация и источники
- Netplan documentation: How to configure static IP addresses, Canonical / Netplan, 2026
- nmcli(1), NetworkManager, 2026
- Network configuration, ArchWiki, 2026
Читайте также
- DNS в Linux: как сменить сервер, включить DNS over TLS и очистить кэш
- Не работает Wi-Fi в Linux: пошаговая диагностика и решение
- Как подключиться по SSH из Linux и Windows: от первого входа до туннелей
- Домашний сервер на Linux: хранение, резервные копии и сервисы
- Настройка UFW: включаем firewall в Ubuntu и открываем нужные порты
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.