Представь, что ты разворачиваешь новый сервер или виртуальную машину. Первое, что нужно сделать после установки системы — настроить сетевое подключение. В этой статье я, как Senior DevOps, покажу тебе все методы настройки сети в Ubuntu 24.04 (Noble Numbat), которые работают и в предыдущих версиях — Ubuntu 22.04 (Jammy Jellyfish) и Ubuntu 20.04 (Focal Fossa). Мы разберем как базовые настройки, так и продвинутые сценарии, включая тонкую настройку для PostgreSQL и работу в Hyper-V.
Сетевые интерфейсы в Ubuntu: от ifconfig к Netplan
Давай разберемся с эволюцией. В старых версиях Ubuntu (до 17.10) использовался ifconfig и конфиги в /etc/network/interfaces. Сейчас стандарт — Netplan. Это YAML-конфигуратор, который работает как фронтенд для systemd-networkd или NetworkManager.
1. Определение сетевых интерфейсов
Первым делом нужно понять, какие интерфейсы есть в системе:
ip link show
# или
ls /sys/class/net/
# Для краткого вывода
ip -br addr show
Ты увидишь что-то вроде:
lo— loopback (localhost)ens33,enp0s3— Ethernet интерфейсы (физические или виртуальные, как в VMware/VirtualBox)eth0— устаревшее именование (может встречаться в старых образах или при определенных настройках)
Настройка статического IP-адреса в Ubuntu 24.04 через Netplan
Это самый частый сценарий для серверов. Конфигурационные файлы Netplan лежат в /etc/netplan/. Давай создадим или отредактируем основной конфиг.
sudo cp /etc/netplan/*.yaml /etc/netplan/*.yaml.backup спасет тебя от ошибок.
Шаг 1: Редактирование конфигурации
sudo nano /etc/netplan/01-netcfg.yaml
Приведу пример конфига для статического IP на интерфейсе ens33:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: [localdomain]
Шаг 2: Применение конфигурации
# Тестируем конфиг на ошибки
sudo netplan try
# Если все ок — применяем
sudo netplan apply
# Или сразу применяем (если уверен)
sudo netplan apply
Шаг 3: Проверка
ip addr show ens33
ping -c 4 8.8.8.8
ping -c 4 google.com
Настройка DHCP в Ubuntu 24.04
Для рабочих станций или виртуальных машин, где IP выдается автоматически, конфиг будет проще. Этот подход также актуален для быстрого развертывания.
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true
dhcp6: false
optional: true
Особенности настройки сети в Hyper-V для Ubuntu
Если ты разворачиваешь Ubuntu 20.04 или новее в Hyper-V, есть нюансы. Hyper-V создает интерфейсы с именами вроде eth0. Для стабильной работы рекомендуется использовать статический MAC-адрес для ВМ и явно указать интерфейс в Netplan.
# Пример для Ubuntu в Hyper-V с External Switch
network:
version: 2
renderer: networkd
ethernets:
eth0:
match:
macaddress: "00:15:5d:01:23:45" # Подставь MAC своей ВМ
set-name: eth0
dhcp4: no
addresses: [192.168.1.150/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 8.8.8.8]
Настройка DNS и Hostname
Правильная работа DNS критична. Помимо указания в Netplan, можно прописать DNS глобально.
Редактирование resolv.conf (символическая ссылка)
# В Ubuntu 24.04 /etc/resolv.conf управляется systemd-resolved
# Смотрим текущие DNS
systemd-resolve --status
# Постоянная настройка через Netplan — предпочтительный способ
# Или через конфиг resolved
sudo nano /etc/systemd/resolved.conf
В файле /etc/systemd/resolved.conf раскомментируй и измени строки:
[Resolve]
DNS=8.8.8.8 1.1.1.1
FallbackDNS=8.8.4.4
Domains=~.
sudo systemctl restart systemd-resolved
Изменение hostname
# Просмотр текущего
hostnamectl
# Установка нового статического hostname
sudo hostnamectl set-hostname myserver.local
# Также нужно прописать в /etc/hosts
sudo nano /etc/hosts
# Добавь строку: 127.0.1.1 myserver.local myserver
Настройка брандмауэра (UFW) в Ubuntu
Без firewall твой сервер — открытая дверь. Uncomplicated Firewall (UFW) — стандартный и простой инструмент.
# Включаем UFW
sudo ufw enable
# Разрешаем SSH (обязательно перед включением, если подключен по SSH!)
sudo ufw allow 22/tcp
# Разрешаем HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Статус
sudo ufw status verbose
# Для PostgreSQL (подробнее ниже)
sudo ufw allow 5432/tcp
Сетевая настройка для PostgreSQL
Запрос "postgresql настройка сети" часто возникает, когда нужно разрешить удаленные подключения к БД. Это двухэтапный процесс: настройка PostgreSQL и настройка firewall.
1. Редактирование postgresql.conf
sudo nano /etc/postgresql/15/main/postgresql.conf
Найди и измени строку:
# Раскомментируй и измени
listen_addresses = 'localhost' # что слушать?
# На:
listen_addresses = '*' # слушать все интерфейсы
# или на конкретный IP сервера, например '192.168.1.100'
2. Редактирование pg_hba.conf
sudo nano /etc/postgresql/15/main/pg_hba.conf
Добавь в конец правило для твоей сети:
# TYPE DATABASE USER ADDRESS METHOD
# Разрешить всем в сети 192.168.1.0/24
host all all 192.168.1.0/24 md5
# Или для всех (НЕ БЕЗОПАСНО для продакшена!)
# host all all 0.0.0.0/0 md5
# Перезапуск PostgreSQL
sudo systemctl restart postgresql
# Открываем порт в UFW
sudo ufw allow 5432/tcp
sudo ufw reload
Сравнение методов настройки сети в разных версиях Ubuntu
| Версия Ubuntu | Основной инструмент | Конфигурационный файл | Команда применения |
|---|---|---|---|
| Ubuntu 24.04 (Noble) | Netplan (systemd-networkd) | /etc/netplan/*.yaml |
sudo netplan apply |
| Ubuntu 22.04 (Jammy) | Netplan (systemd-networkd) | /etc/netplan/*.yaml |
sudo netplan apply |
| Ubuntu 20.04 (Focal) | Netplan (по умолчанию) или ifupdown |
/etc/netplan/*.yaml или /etc/network/interfaces |
sudo netplan apply или sudo systemctl restart networking |
| Ubuntu 18.04 и старше | ifupdown (устарело) |
/etc/network/interfaces |
sudo ifdown -a && sudo ifup -a |
Диагностика проблем с сетью в Ubuntu
Если что-то пошло не так, вот чек-лист:
- Проверь физическое подключение/виртуальный свитч.
- Убедись, что конфиг Netplan синтаксически верен:
sudo netplan generate - Проверь статус networkd:
sudo networkctl status - Смотри логи:
sudo journalctl -u systemd-networkd -f - Пинг шлюза:
ping 192.168.1.1(подставь свой) - Пинг внешнего DNS:
ping 8.8.8.8 - Проверь разрешение имен:
nslookup google.comилиdig google.com - Проверь таблицу маршрутизации:
ip route show - Отключи firewall временно:
sudo ufw disable(для теста).
Часто задаваемые вопросы (FAQ)
Чем отличается настройка сети в Ubuntu 24.04 от 22.04 и 20.04?
Основной инструмент — Netplan — одинаков. Ключевое отличие может быть в версии systemd и деталях реализации networkd. Конфиги YAML полностью совместимы «сверху вниз» (из 24.04 в 20.04), но могут быть несовместимы «снизу вверх», если используются новые параметры. Всегда проверяй man netplan для своей версии.
Почему после настройки статического IP пропал интернет?
Скорее всего, неверно указан шлюз (gateway4 в старом синтаксисе или routes в новом) или DNS-серверы. Проверь команду ip route show — должен быть маршрут через default via [IP_шлюза]. Также убедись, что IP-адрес не конфликтует с другим устройством в сети.
Как настроить два IP-адреса на одном интерфейсе?
В Netplan это просто. В блоке addresses укажи оба адреса через дефис.
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
Можно ли использовать старый метод /etc/network/interfaces в Ubuntu 24.04?
Технически пакет ifupdown можно установить, но это не рекомендуется. Netplan — это будущее, он лучше интегрирован с systemd, поддерживает predictible network interface names и обладает большей гибкостью. Используй его.
Как настроить автоматическое подключение к Wi-Fi через Netplan?
Для Wi-Fi нужен renderer: NetworkManager. Создай конфиг:
network:
version: 2
renderer: NetworkManager
wifis:
wlp2s0:
access-points:
"MySSID":
password: "s3cr3tp4ss"
dhcp4: true
Установи пакет: sudo apt install network-manager и примени конфиг.
Какие основные ошибки при настройке PostgreSQL для сети?
1) Не изменил listen_addresses в postgresql.conf. 2) Не добавил правило в pg_hba.conf. 3) Не открыл порт 5432 в брандмауэре (UFW или iptables). 4) Пытаешься подключиться с локального IP, но в pg_hba.conf разрешены только адреса из другой подсети. Всегда проверяй логи PostgreSQL: sudo tail -f /var/log/postgresql/postgresql-15-main.log.
Заключение
Настройка сети в Ubuntu 24.04 через Netplan — это чистый, декларативный и мощный подход. Освоив его, ты сможешь быстро конфигурировать как простые рабочие станции, так и сложные серверные окружения, будь то физический хост, виртуальная машина в Hyper-V или облачный инстанс. Помни золотое правило: тестируй конфиг через netplan try перед применением, особенно на удаленном сервере. Удачи в настройке!