Гид по технологиям

Настройка сети на Ubuntu Server: полный справочник

8 min read Сеть Обновлено 27 Dec 2025
Настройка сети на Ubuntu Server
Настройка сети на Ubuntu Server

ubuntu-servers-network-configurations

Изучая администрирование серверов Ubuntu, важно уметь настраивать сеть через командную строку. Это включает понимание Ethernet-интерфейсов, IP-адресации, мостов (bridging), разрешения имён и инструментов диагностики. Это руководство даёт практические инструкции и шаблоны, которые подходят для Ubuntu 18.04, 20.04 и более новых версий.

Основные понятия

  • Ethernet-интерфейс: физический или виртуальный интерфейс сети (например, eth0, enp0s3, ens3). Короткая инфо-строка: логическое имя интерфейса привязано к аппаратному MAC-адресу через udev или к системным правилам.
  • IP-адресация: статическая или динамическая (DHCP). Статическая конфигурация сохраняется в конфигурационных файлах, временная — через ip/ifconfig.
  • Netplan: современный инструмент Ubuntu для генерации конфигураций back-end’ов (systemd-networkd или NetworkManager) из YAML-файлов в /etc/netplan/.
  • /etc/network/interfaces: традиционный механизм конфигурации сетей на Debian/Ubuntu; всё ещё используется на старых системах или при специфических настройках.
  • DNS и NSS: разрешение имён управляется resolvconf / systemd-resolved, /etc/resolv.conf, /etc/hosts и /etc/nsswitch.conf.

Важно: всегда создавайте резервные копии файлов конфигурации перед изменениями.

Управление Ethernet-интерфейсами на Ubuntu

Ethernet-интерфейс — это аппаратный или виртуальный адаптер, позволяющий подключиться к сети. Современные Ubuntu используют предсказуемые имена интерфейсов (enp…, ens…, eno…) вместо старых eth0, eth1, но оба варианта встречаются.

Просмотр доступных интерфейсов

Чтобы увидеть список интерфейсов, используйте ip или ifconfig:

ip link show
# или (на системах с ifconfig)
ifconfig -a | grep -E "^([a-zA-Z0-9]+)"

Пример вывода может содержать строки с именами интерфейсов и статусом.

Подробная информация об устройстве

Команда lshw показывает свойства аппаратных устройств, драйверы и возможности сетевого контроллера:

sudo lshw -class network

lshw-class-network-and-network-information-output

Управление логическими именами интерфейсов через udev

Файл /etc/udev/rules.d/70-persistent-net.rules (если присутствует) позволяет жестко назначать логические имена интерфейсам по MAC-адресу. Пример записи может выглядеть так:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"

Шаги:

  • Узнайте MAC через ip link show или lshw.
  • Отредактируйте правила udev, замените NAME на желаемое имя.
  • Перезагрузите систему или перезапустите udev, чтобы применить изменения.

Важно: современные дистрибутивы чаще используют предсказуемые имена и systemd/udev, так что файл 70-persistent-net.rules может отсутствовать.

Конфигурация Ethernet-интерфейсов в Ubuntu 18.04 и ранее

На старых системах основной файл конфигурации — /etc/network/interfaces. Для просмотра или временной настройки параметров используется ethtool.

Просмотр и изменение настроек с помощью ethtool

ethtool показывает auto-negotiation, режим дуплекса и скорость порта:

sudo apt update && sudo apt install ethtool
sudo ethtool eth0

ethtool-usage-for-eth0-output

Изменения, сделанные через ethtool, временные. Чтобы сделать их постоянными, добавьте соответствующую команду в последовательность запуска, например в /etc/network/interfaces или в системный unit.

Пример добавления команды в /etc/network/interfaces для постоянной настройки (фрагмент):

auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    post-up /sbin/ethtool -s eth0 speed 1000 duplex full autoneg on

eth0-500-mbs-configuration-interfaces-file

Примечание: в примере выше используется параметр speed 1000 (Мбит/с). Подставляйте значения, совместимые с оборудованием.

Конфигурация Ethernet-интерфейсов в Ubuntu 20.04 и новее

Начиная с 18.04/20.04, Ubuntu использует Netplan. Его конфигурации находятся в /etc/netplan/ и представляют собой YAML-файлы, которые генерируют настройки для systemd-networkd или NetworkManager.

Основные команды и порядок действий:

  1. Посмотрите файлы в папке /etc/netplan:
ls /etc/netplan
# Пример вывода: 00-installer-config.yaml
  1. Создайте резервную копию файла перед правками:
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.copy
  1. Отредактируйте YAML-файл любым редактором:
sudo vim /etc/netplan/00-installer-config.yaml

Пример статической конфигурации Netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses: [192.168.10.10/24]
      gateway4: 192.168.10.1
      nameservers:
        search: [example.com, corp.example.com]
        addresses: [192.168.10.53, 8.8.8.8]

netplan-network-config-file-for-ubuntu

  1. Примените изменения:
sudo netplan apply
  1. Проверьте текущие адреса и состояние интерфейсов:
ip addr
ip route

changes-check-for-netplan-configuration-for-ubuntu

Совет: при отладке используйте sudo netplan –debug apply, чтобы увидеть ошибки в YAML и процесс применения.

IP-адресация: временные и постоянные настройки

Инструменты ip, ifconfig и route позволяют временно изменить сетевые параметры. Эти изменения пропадают после перезагрузки, если не сохранены в конфигурационных файлах.

Временная настройка IP

Добавление адреса временно:

sudo ip addr add 192.168.10.55/24 dev ens3

Удаление адреса:

sudo ip addr del 192.168.10.55/24 dev ens3

Команда ifconfig (устаревшая, но всё ещё используемая):

sudo ifconfig eth0 192.168.10.55 netmask 255.255.255.0 up

Установка маршрута по умолчанию

sudo ip route add default via 192.168.10.1 dev ens3
# или старый вариант
sudo route add default gw 192.168.10.1 eth0

Проверка таблицы маршрутов:

route -n
ip route show

route-n-command-information-check

DNS для временных конфигураций

Файл /etc/resolv.conf управляется systemd-resolved или resolvconf. Для быстрой временной проверки можно редактировать /etc/resolv.conf вручную, но изменения могут быть перезаписаны.

# vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Если вы используете systemd-resolved, предпочтительнее изменять настройки через Netplan или через systemd-resolved конфигурации.

Сброс временных настроек

Чтобы убрать все адреса на интерфейсе:

sudo ip addr flush dev ens3

Обратите внимание: это не изменяет /etc/resolv.conf, его нужно очистить отдельно при необходимости.

Динамическая (DHCP) и статическая адресация

На системах с /etc/network/interfaces пример для DHCP:

auto eth0
iface eth0 inet dhcp

Активировать или деактивировать интерфейс вручную:

sudo ifup eth0
sudo ifdown eth0

На Netplan для DHCP достаточно указать dhcp4: true:

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true

Для статической конфигурации в /etc/network/interfaces:

auto eth0
iface eth0 inet static
    address 192.168.2.2
    netmask 255.255.255.0
    gateway 192.168.2.1
    dns-nameservers 192.168.2.25 192.168.8.11
    dns-search test.com market.test.com support.test.com

Конфигурирование loopback-интерфейса

Loopback-интерфейс lo обычно настроен автоматически и присутствует в /etc/network/interfaces:

auto lo
iface lo inet loopback

ifconfig-lo-command-usage-and-output

Разрешение имён (DNS) и NSS

Разрешение имён в Linux — процесс преобразования имён хостов в IP-адреса и обратно. На Ubuntu это сочетание нескольких механизмов: /etc/hosts, локальные и сетевые резолверы, systemd-resolved и конфигурация NSS (/etc/nsswitch.conf).

Настройка DNS-клиента

В современных системах /etc/resolv.conf может быть символической ссылкой на /run/systemd/resolve/stub-resolv.conf или на /run/resolvconf/resolv.conf. При использовании resolvconf изменения из /etc/network/interfaces или DHCP-клиента обновляют /etc/resolv.conf автоматически.

Пример настройки DNS в /etc/network/interfaces (если используется resolvconf):

iface eth0 inet static
    address 192.168.2.2
    netmask 255.255.255.0
    gateway 192.168.2.1
    dns-search test.com market.test.com support.test.com
    dns-nameservers 192.168.2.25 192.168.8.11

Порядок поиска доменов влияет на разрешение незавершённых имён; сначала будет использоваться test.com, затем market.test.com и т.д.

Статические хосты

Файл /etc/hosts имеет приоритет над DNS. Примеры записей:

127.0.0.1 localhost
127.0.1.1 muo-server
10.0.0.11 server1 server1.test.com vpn
10.0.0.12 server2 server2.test.com mail
10.0.0.13 server3 server3.test.com www

Если имя найдено в /etc/hosts, дальнейшие DNS-запросы не выполняются.

NSS и /etc/nsswitch.conf

Файл /etc/nsswitch.conf управляет порядком, в котором ОС обращается к источникам имён:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Эта строка означает: сначала проверить /etc/hosts (files), затем Multicast DNS (mdns4_minimal) и при NOTFOUND остановиться, иначе продолжить с dns, затем mdns4. Порядок можно менять под нужды сети.

Мостирование (Bridging)

Мост (bridge) полезен для объединения нескольких интерфейсов в один уровень L2, например при размещении виртуальных машин, которым нужен прямой доступ в сеть.

Установка и базовая настройка:

sudo apt update && sudo apt install bridge-utils

Для старых систем /etc/network/interfaces пример конфигурации:

auto br0
iface br0 inet static
    address 192.168.50.10
    netmask 255.255.255.0
    gateway 192.168.50.1
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

Запустить мост:

sudo ifup br0

На Netplan мост создаётся через ключ bridges:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [eth0]
      addresses: [192.168.50.10/24]
      gateway4: 192.168.50.1
      nameservers:
        addresses: [192.168.50.2]

bridge-interfaces-file-configuration

Проверка мостов:

\nbridge link brctl show

Примечание: при использовании KVM/QEMU мосты обычно нужны, чтобы виртуальные машины получили IP в той же сети, что и хост.

Когда настройки сетей не работают: типичные ситуации и причины

  • Неправильный формат YAML в Netplan. Симптом: netplan apply выдаёт ошибку. Решение: sudo netplan –debug apply.
  • Конфликт имени интерфейса (udev присваивает другое имя). Проверьте ip link show и udev-правила.
  • /etc/resolv.conf переписывается systemd-resolved. Проверьте, куда указывает /etc/resolv.conf.
  • DHCP-сервер не отвечает. Проверьте связь с сервером и логи DHCP-клиента (journalctl -u systemd-networkd или dhclient).
  • Аппаратная несовместимость скорости/дуплекса. Посмотрите ethtool и логи dmesg.

Чек-листы по ролям

Чек-лист для системного администратора:

  • Снять резервную копию конфигурационных файлов: /etc/netplan/*, /etc/network/interfaces, /etc/hosts, /etc/resolv.conf
  • Проверить текущую конфигурацию: ip addr, ip route, ss -tun
  • Применить изменения в тестовой среде при возможности
  • Применить изменения и мониторить логи: journalctl -u systemd-networkd -f

Чек-лист для сетевого инженера:

  • Проверить таблицы маршрутизации и правила фаервола
  • Убедиться в согласованности VLAN/MTU на всех узлах
  • Проверить ARP и MAC-таблицы на коммутаторах

Чек-лист для DevOps-инженера:

  • Версионировать конфигурации (git)
  • Автоматизировать netplan apply через CI при тестировании
  • Подготовить rollback-скрипт

Runbook при потере сетевого доступа

  1. Подключитесь к консоли или KVM (если доступно). Если сеть полностью недоступна, дистанционно откатить изменения невозможно.
  2. Проверить состояние интерфейсов:
ip link
ip addr
ip route
  1. Проверить логи сетевых сервисов:
journalctl -u systemd-networkd -b --no-pager
journalctl -u NetworkManager -b --no-pager
  1. Откатить изменения:
  • Если был изменён /etc/netplan/00-installer-config.yaml, заменить на резервную копию и выполнить sudo netplan apply.
  • Если использовались /etc/network/interfaces, восстановить из копии и выполнить sudo ifdown && sudo ifup .
  1. Если ничего не помогает, перезагрузите систему чисто через консоль и проверьте исходные состояния.

Критерии приёмки

  • Сеть поднимается автоматически после перезагрузки без ручного вмешательства.
  • Интерфейс получает IP в нужном диапазоне и маршрут по умолчанию корректен.
  • Разрешение имён работает для внутренних и внешних ресурсов.
  • Логи не содержат критических ошибок сетевых демонов.

Шпаргалка команд и приёмы диагностики

  • Просмотр интерфейсов: ip addr, ip link
  • Маршруты: ip route, route -n
  • DNS: systemd-resolve –status, cat /etc/resolv.conf
  • L2 и мосты: brctl show, bridge link
  • Аппаратная информация: sudo lshw -class network
  • Настройки порта: sudo ethtool eth0
  • Файлы конфигурации: /etc/netplan/*.yaml, /etc/network/interfaces, /etc/hosts, /etc/nsswitch.conf
  • Применение Netplan: sudo netplan apply, sudo netplan –debug apply

Миграция с /etc/network/interfaces на Netplan

  1. Сохраняем текущие файлы:
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
sudo cp -r /etc/network/interfaces.d /etc/network/interfaces.d.bak
  1. Создаём файл /etc/netplan/01-migrate.yaml с эквивалентными настройками (см. пример выше).
  2. Применяем: sudo netplan try — это позволит протестировать настройки и автоматически откатить через таймаут, если соединение потеряется.
  3. Если всё OK, sudo netplan apply.

Альтернативные подходы

  • NetworkManager: удобен на десктопах и в динамичных окружениях, где часто меняются сети.
  • systemd-networkd: лёгкий и быстрый для серверов, хорошо интегрируется с Netplan.
  • Конфигурация через cloud-init: используется в облачных образах для первоначальной настройки сетей.

Безопасность и приватность

  • Ограничьте доступ по SSH только с доверенных адресов и используйте ключи.
  • Не храните секреты (пароли, ключи API) в открытых конфигурационных файлах.
  • Минимизируйте открытые порты и применяйте политики firewall (ufw, iptables/nftables).
  • При использовании DHCP учтите, что адреса могут измениться; привязывайте важные сервисы к DNS-именам или резервным адресам.

Когда этот подход не подходит

  • В сетях с централизованным управлением конфигурацией (SDN) ручные настройки на хостах могут конфликтовать с политиками контроллера.
  • Если на узлах используется собственный конфиг-менеджер, применяющий свои правила, ручные изменения будут перезаписаны.

Модель принятия решений (Mermaid)

flowchart TD
  A[Начальная задача: изменить сеть] --> B{Изменение локальной или глобальной?}
  B -->|Локальная| C[Использовать ip/netplan try]
  B -->|Глобальная| D[Согласовать с сетью/инженером]
  C --> E{Тест пройден?}
  E -->|Да| F[Применить изменения и мониторить]
  E -->|Нет| G[Откатить и отладить]
  D --> F

Шаблоны и примеры

  1. Пример netplan для DHCP + static DNS:
network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: true
      nameservers:
        addresses: [8.8.8.8, 192.168.10.53]
  1. Пример static + bridge (Netplan):
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [eth0]
      addresses: [10.10.0.10/24]
      gateway4: 10.10.0.1
      nameservers:
        addresses: [10.10.0.2]

Контрольные тесты и критерии приёмки

  • Тест 1: Перезагрузить сервер. Ожидаемый результат: сеть поднимается без ручного вмешательства.
  • Тест 2: Пропинговать gateway и публичный IP (например, 8.8.8.8). Ожидаемый результат: успешный отклик.
  • Тест 3: Разрешение имён внутреннего FQDN. Ожидаемый результат: корректный IP согласно /etc/hosts или DNS.
  • Тест 4: Проверка службы после применения ethtool-изменений, если они важны: скорость и дуплекс совпадают с ожиданием.

Краткое резюме

  • Netplan — основной инструмент для Ubuntu 20.04 и новее; /etc/network/interfaces всё ещё используется на старых инсталляциях.
  • Временные изменения делаются через ip, ifconfig и ethtool; постоянные — через конфигурационные файлы.
  • /etc/hosts, /etc/resolv.conf и /etc/nsswitch.conf управляют порядком и механикой разрешения имён.
  • Всегда делайте резервные копии и используйте netplan try для безопасного применения изменений.

Important: перед массовыми изменениями на продакшн-серверах согласуйте план с командой сетевых инженеров.

Notes: этот справочник покрывает практические и проверяемые шаги без привязки к конкретному облачному провайдеру.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Создать Wi‑Fi хотспот на Linux — linux-wifi-hotspot
Сеть

Создать Wi‑Fi хотспот на Linux — linux-wifi-hotspot

Восстановление данных с неисправного жёсткого диска
Аппаратное обеспечение

Восстановление данных с неисправного жёсткого диска

Camera Control на iPhone 16 — руководство
iPhone

Camera Control на iPhone 16 — руководство

Стриминг видео из Dropbox на любой компьютер
Руководство

Стриминг видео из Dropbox на любой компьютер

Умный MP3 дверной звонок на ESPHome
Умный дом

Умный MP3 дверной звонок на ESPHome

Защита от Wi‑Fi Pineapple — практическое руководство
Кибербезопасность

Защита от Wi‑Fi Pineapple — практическое руководство