Linux

Настройка сети в Linux: полное руководство по ip, nmcli и netplan

Это руководство поможет вам освоить современные методы настройки сети в Linux: от базовых команд ip до декларативных конфигураций netplan. Вы научитесь назначать IP-адреса, настраивать шлюзы и DNS, а также диагностировать сбои.

Обновлено 16 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+CentOS 8+/RHEL 8+Fedora 35+

Введение / Зачем это нужно

Правильная настройка сети — это основа работы любого сервера или рабочей станции под Linux. Без корректно назначенного IP-адреса, шлюза и DNS-серверов система не сможет общаться с другими устройствами в локальной сети и интернетом. Этот гайд покрывает практические аспекты настройки как для временных изменений (для тестирования), так и для постоянной конфигурации в основных современных дистрибутивах.

После прохождения вы сможете:

  • Назначать IP-адреса и маршруты вручную.
  • Понимать, какой инструмент (ip, nmcli, netplan) использовать в вашем случае.
  • Диагностировать основные проблемы с сетевым подключением.

Требования / Подготовка

  1. Доступ к терминалу с правами sudo (администратора).
  2. Базовое понимание сетевых концепций: IP-адрес, маска подсети, шлюз (gateway), DNS.
  3. Знание имени вашего сетевого интерфейса. Узнать его можно командой:
    ip link show
    
    Ищите запись без LOOPBACK (обычно lo). Примеры имен: eth0, ens33, enp0s3, wlan0.
  4. Информация о сети от администратора или роутера:
    • Желаемый IP-адрес (или используйте DHCP).
    • Маска подсети (например, 255.255.255.0 или /24).
    • Адрес шлюза (gateway).
    • Адреса DNS-серверов (например, 8.8.8.8, 1.1.1.1).

Шаг 1: Временная настройка сети командой ip

Этот способ работает мгновенно, но все изменения исчезнут после перезагрузки. Идеально для тестов.

  1. Очистите старый адрес (если был) с интерфейса (например, eth0):
    sudo ip addr flush dev eth0
    
  2. Назначьте новый IP-адрес и маску:
    sudo ip addr add 192.168.1.100/24 dev eth0
    
    Здесь /24 — это маска, эквивалентная 255.255.255.0.
  3. Включите (поднимите) интерфейс:
    sudo ip link set eth0 up
    
  4. Добавьте маршрут по умолчанию (шлюз):
    sudo ip route add default via 192.168.1.1
    
  5. Настройте DNS временно, прописав серверы в /etc/resolv.conf (файл может быть перезаписан):
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf
    

⚠️ Важно: Для постоянной настройки необходимо использовать конфигурационные файлы вашего дистрибутива (см. следующие шаги).

Шаг 2: Постоянная настройка в Ubuntu/Debian (Netplan)

Начиная с Ubuntu 17.10, по умолчанию используется Netplan — декларативный конфигуратор, который генерирует настройки для systemd-networkd или NetworkManager.

  1. Найдите конфигурационный файл в /etc/netplan/. Обычно он имеет имя вроде 00-installer-config.yaml или 01-netcfg.yaml.
  2. Отредактируйте файл (например, sudo nano /etc/netplan/00-installer-config.yaml). Пример конфигурации для статического IP:
    network:
      version: 2
      renderer: networkd # или 'NetworkManager' для десктопов
      ethernets:
        eth0:
          addresses:
            - 192.168.1.100/24
          gateway4: 192.168.1.1
          nameservers:
            addresses:
              - 8.8.8.8
              - 1.1.1.1
    
    • ethernets — раздел для проводных интерфейсов. Для Wi-Fi используйте wifis.
    • Убедитесь, что отступы в YAML сделаны пробелами, а не табами.
  3. Примените конфигурацию:
    sudo netplan apply
    
    Если вы допустили ошибку в синтаксисе, команда сообщит об этом.

Шаг 3: Постоянная настройка через NetworkManager (nmcli)

NetworkManager — популярный демон, часто используемый в десктоп-системах (Ubuntu, Fedora, RHEL). Управлять им можно через CLI утилиту nmcli.

  1. Проверьте имя существующего подключения (если оно есть):
    nmcli connection show
    
  2. Создайте новое подключение (или измените существующее). Для создания:
    sudo nmcli connection add type ethernet con-name static-eth ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1
    
  3. Добавьте DNS-серверы к этому подключению:
    sudo nmcli connection modify static-eth ipv4.dns "8.8.8.8 1.1.1.1"
    
  4. Примените настройки и активируйте подключение:
    sudo nmcli connection up static-eth
    
  5. Чтобы подключение поднималось автоматически при загрузке, убедитесь, что флаг connection.autoconnect установлен в yes (по умолчанию так).

💡 Совет: Для Wi-Fi используйте type wifi и добавьте параметры wifi-sec.key-mgmt wpa-psk и wifi-sec.psk "пароль".

Шаг 4: Настройка в RHEL/CentOS 8+ (systemd-networkd)

В минимальных установках RHEL-семейства часто используется systemd-networkd.

  1. Создайте или отредактируйте файл конфигурации интерфейса в /etc/systemd/network/. Имя файла должно оканчиваться на .network (например, 20-wired.network).
    [Match]
    Name=eth0
    
    [Network]
    Address=192.168.1.100/24
    Gateway=192.168.1.1
    DNS=8.8.8.8
    DNS=1.1.1.1
    
  2. Перезапустите службу и перезагрузите сеть:
    sudo systemctl restart systemd-networkd
    sudo systemctl restart systemd-resolved # для DNS
    
  3. Включите автозагрузку служб (обычно уже включена):
    sudo systemctl enable systemd-networkd
    

Проверка результата

  1. Убедитесь, что интерфейс имеет нужный IP:
    ip addr show eth0
    
    В выводе должна быть строка с вашим адресом inet 192.168.1.100/24.
  2. Проверьте таблицу маршрутизации:
    ip route show
    
    Должна быть запись default via 192.168.1.1 dev eth0.
  3. Проверьте доступ в интернет:
    ping -c 4 8.8.8.8
    
    Если пинги идут, сетевая связность есть.
  4. Проверьте разрешение DNS-имен:
    nslookup google.com
    
    или
    dig google.com
    
    Должен вернуться IP-адрес.

Возможные проблемы

  • Operation not permitted или Permission denied: Вы забыли использовать sudo.
  • RTNETLINK answers: File exists: Попытка добавить дублирующий IP-адрес. Очистите интерфейс (ip addr flush) или используйте другой адрес.
  • Интерфейс не поднимается после конфигурации (state DOWN):
    • Проверьте, физически ли подключен кабель (для wired) или включен ли Wi-Fi (кнопка/переключатель на ноутбуке, rfkill list).
    • Проверьте корректность YAML-синтаксиса в netplan (sudo netplan try).
    • Проверьте логи: journalctl -u systemd-networkd или journalctl -u NetworkManager.
  • Нет доступа в интернет, но ping 8.8.8.8 работает: Проблема с DNS. Проверьте содержимое /etc/resolv.conf и настройки DNS в вашем конфигурационном файле (netplan/nmcli).
  • Конфликт IP-адресов: Убедитесь, что выбранный вами адрес не занят другим устройством в сети. Используйте arp-scan или проверьте аренду DHCP на роутере.

Часто задаваемые вопросы

Какая утилита сейчас рекомендуется вместо ifconfig?
Как сделать настройки сети постоянными, чтобы они сохранялись после перезагрузки?
Что делать, если интерфейс после настройки не поднимается (state DOWN)?
Как временно (до перезагрузки) изменить IP-адрес?

Полезное

Определение сетевых интерфейсов
Выбор метода настройки
Настройка статического IP (универсальный способ через ip)
Постоянная настройка для Netplan (Ubuntu/Debian)
Постоянная настройка через nmcli (NetworkManager)
Проверка конфигурации

Эта статья помогла вам решить проблему?