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

Настройка сети на 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
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро