Если сервер Ubuntu Server не получает IP адрес по DHCP, проверьте сетевой интерфейс, конфигурацию netplan и статус сервиса dhcp-клиента. В большинстве случаев проблема решается перезагрузкой сетевого интерфейса или исправлением файла конфигурации.
Причины проблемы
- Сетевой интерфейс отключен или в неправильном состоянии
- Некорректная конфигурация netplan или ifupdown
- DHCP-сервис не запущен или неправильно сконфигурирован
- Проблемы с драйвером сетевой карты
- DHCP-сервер недоступен в локальной сети
- Конфликт IP адресов или аренда DHCP истекла
- Firewall блокирует трафик DHCP (порты 67-68 UDP)
Пошаговая инструкция
- Откройте терминал с правами администратора и выполните команду
ip link showдля просмотра списка всех сетевых интерфейсов. - Проверьте статус интересующего интерфейса (например,
eth0илиens3) — он должен показывать состояниеUP. - Если интерфейс в состоянии
DOWN, активируйте его командойsudo ip link set eth0 up(заменитеeth0на ваш интерфейс). - Проверьте конфигурацию netplan, выполнив
cat /etc/netplan/*.yamlдля просмотра содержимого файла конфигурации. - Откройте файл конфигурации на редактирование:
sudo nano /etc/netplan/00-installer-config.yaml(имя файла может отличаться). - Убедитесь, что в конфигурации присутствует строка
dhcp4: trueдля включения DHCP на интерфейсе. - Проверьте синтаксис YAML файла — используйте пробелы (не табуляции) для отступов, иначе конфиг не будет применён.
- Примените конфигурацию командой
sudo netplan apply. - Перезагрузите сетевой интерфейс:
sudo ip link set eth0 down && sudo ip link set eth0 up. - Проверьте получение IP адреса командой
ip addr show eth0— должен отображаться адрес с префиксомinet. - Если адрес не появился, выполните
sudo dhclient -v eth0для явного запроса DHCP аренды с отладочной информацией. - Проверьте логи dhcp-клиента:
sudo journalctl -u dhclient -n 50для диагностики. - Убедитесь, что DHCP демон запущен:
sudo systemctl status systemd-networkd. - Если демон остановлен, запустите его:
sudo systemctl start systemd-networkd. - Включите автоматический запуск сервиса:
sudo systemctl enable systemd-networkd. - Проверьте подключение к DHCP серверу пингом шлюза:
ping -c 4 192.168.1.1(замените на IP вашего шлюза). - Если ping не срабатывает, проверьте физическое подключение кабеля и перезагрузитесь:
sudo reboot.
Часто задаваемые вопросы
Как проверить, получает ли сервер IP адрес от DHCP? Выполните команду ip addr show и найдите строку inet с адресом вида 192.168.x.x — если она есть, DHCP работает правильно.
Что означает ошибка "No DHCP offers received" в логах? DHCP сервер в сети не отвечает на запросы — проверьте подключение кабеля, статус DHCP сервера и наличие маршрута по умолчанию через ip route show.
Почему netplan apply не применяет конфигурацию? Проверьте синтаксис YAML командой sudo netplan validate — обычно проблема в некорректных отступах или опечатках в названиях параметров.