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

Установка и настройка DHCP-сервера и клиентов на Ubuntu 20.04

• 4 min read • Сеть • Обновлено 21 Nov 2025
DHCP на Ubuntu 20.04: установка и настройка
DHCP на Ubuntu 20.04: установка и настройка

Схема DHCP: сервер выдает IP-адреса клиентам в локальной сети

Кратко: установите пакет isc-dhcp-server на сервере Ubuntu 20.04, укажите сетевой интерфейс и диапазон адресов в /etc/dhcp/dhcpd.conf, перезапустите службу. Клиенты можно настроить для получения статического IP по MAC или динамического адреса. В статье есть примеры конфигураций, проверка статуса и рекомендации по безопасности.

Важно: Ubuntu 20.04 по умолчанию использует netplan для настройки сети. В статье приведены примеры и для /etc/network/interfaces, и для netplan.

Введение

DHCP (Dynamic Host Configuration Protocol) автоматически назначает клиентам сетевые параметры: IP-адрес, шлюз, DNS и доменное имя. Это экономит время при администрировании большой сети и снижает ошибки ручного ввода.

Цель этой инструкции — показать, как установить и настроить isc-dhcp-server на Ubuntu 20.04 и как настроить клиентов для получения статического или динамического IP.

Требования

  • Два устройства с Ubuntu 20.04 (сервер и клиент).
  • Пароль root или доступ через sudo на сервере.
  • Понимание базовой сетевой схемы (сеть, шлюз, DNS).

Установка DHCP-сервера

Пакет isc-dhcp-server есть в стандартном репозитории. На сервере выполните:

sudo apt-get update
sudo apt-get install isc-dhcp-server -y

После установки запустите и включите службу при загрузке:

sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server

Проверьте статус:

sudo systemctl status isc-dhcp-server

Если служба не запустилась, посмотрите журналы:

sudo journalctl -u isc-dhcp-server --no-pager | tail -n 100

Настройка DHCP-сервера

Основной файл конфигурации DHCP: /etc/dhcp/dhcpd.conf. По умолчанию интерфейс указывается в /etc/default/isc-dhcp-server.

Откройте файл определения интерфейса:

sudo nano /etc/default/isc-dhcp-server

Укажите используемый интерфейс, например:

INTERFACESv4="eth0"

Сохраните и закройте файл.

Далее отредактируйте /etc/dhcp/dhcpd.conf:

sudo nano /etc/dhcp/dhcpd.conf

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

authoritative;

default-lease-time 660;
max-lease-time 6300;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.2 192.168.0.20;
  option routers 192.168.0.1;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  option domain-name "example.local";
}

Сохраните файл и перезапустите службу:

sudo systemctl restart isc-dhcp-server

Присвоение статического IP по MAC-адресу

По умолчанию DHCP выдает динамические адреса из указанного диапазона. Чтобы закрепить конкретный IP за клиентом, добавьте хост-блок в dhcpd.conf.

Например, назначим 192.168.0.5 клиенту с MAC 4c:bb:58:9c:f5:55:

host client1 {
  hardware ethernet 4c:bb:58:9c:f5:55;
  fixed-address 192.168.0.5;
}

Сохраните и перезапустите сервер:

sudo systemctl restart isc-dhcp-server

Проверьте логи и статус для обнаружения ошибок.

Настройка клиента для получения статического IP от DHCP

На клиенте, чтобы получить закреплённый адрес по MAC, обычно не требуется ничего менять в настройках DHCP. Клиент должен просто запросить адрес у сервера. Однако способы настройки сетевого стека зависят от того, как настроена система: через ifupdown (/etc/network/interfaces) или netplan (рекомендуемый способ для Ubuntu 20.04).

Пример для ifupdown (если установлен пакет ifupdown):

sudo nano /etc/network/interfaces

Замените содержимое на:

auto eth0
iface eth0 inet dhcp

Перезапустите менеджер сети (или ifup/ifdown):

sudo systemctl restart network-manager
# или
sudo ifdown eth0 && sudo ifup eth0

Если клиент использует netplan (по умолчанию в Ubuntu 20.04), настройте YAML, например /etc/netplan/01-netcfg.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: true

Примените конфигурацию:

sudo netplan apply

Проверьте адрес:

ip addr show dev eth0
# или
ifconfig

Пример вывода клиента, закреплённого по MAC:

eth0      Link encap:Ethernet  HWaddr 4c:bb:58:9c:f5:55
          inet addr:192.168.0.5  Bcast:192.168.0.255  Mask:255.255.255.0

Если IP не получен, освободите и обновите аренду:

sudo dhclient -r -v
sudo dhclient -v

Обратите внимание, что в некоторых статьях встречается ошибочная длинная тире перед -r; используйте обычный дефис.

Настройка клиента для получения динамического IP

Чтобы клиент получал IP автоматически, настройте интерфейс на DHCP.

ifupdown:

auto eth0
iface eth0 inet dhcp

netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: true

Примените изменения и проверьте ip:

sudo netplan apply
ip addr show dev eth0

Пример ожидаемого вывода для динамического клиента:

eth0      Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0

Отладка и частые проблемы

  • Служба не стартует: проверьте /etc/default/isc-dhcp-server — правильно ли указан интерфейс.
  • Ошибки в dhcpd.conf: синтаксис критичен. Проверьте журнал systemd: sudo journalctl -u isc-dhcp-server.
  • Клиент не получает адрес: проверьте, виден ли клиент серверу (ping, ARP).
  • Конфликт диапазона и статических адресов: убедитесь, что fixed-address лежит вне динамического range или исключён из него.
  • Фаервол блокирует трафик: DHCP использует UDP порты 67 (сервер) и 68 (клиент). Разрешите их.

Команды для диагностики:

sudo tail -f /var/log/syslog | grep dhcpd
sudo netstat -anu | grep :67
sudo journalctl -u isc-dhcp-server -n 200

Рекомендации по безопасности

  • Ограничьте выдачу адресов по MAC или используйте списки разрешённых клиентов.
  • Включите DHCP snooping на коммутаторах уровня L2 (если поддерживается).
  • Логируйте и мониторьте аномалии: множество запросов от одного MAC может означать проблему.
  • Обновляйте пакет isc-dhcp-server и следите за патчами безопасности.

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

  • systemd-networkd + systemd-networkd-wait-online: используйте вместо isc-dhcp-server для простых случаев.
  • Использовать dnsmasq как легковесный DHCP/DNS сервер для малых сетей с простой конфигурацией.
  • Решения на уровне контроллера (сеть под управлением SDN) для крупных сред.

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

Перед вводом в эксплуатацию проверьте:

  • Указан правильный интерфейс в /etc/default/isc-dhcp-server.
  • subnet и netmask соответствуют схеме сети.
  • Диапазон range не пересекается с вручную назначаемыми адресами.
  • Указаны корректные option routers и option domain-name-servers.
  • Перезапуск службы не возвращает ошибок.
  • Проведено тестирование на клиенте: dhclient и проверка ip.

Факты и числа

  • Порты: UDP 67 (сервер), UDP 68 (клиент).
  • Рекомендуемые значения аренды зависят от сети: для динамичных сетей — минуты, для серверов — часы.
  • Netmask и range должны соответствовать одной подсети.

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

Система считается корректно настроенной, если:

  • DHCP-сервер запущен без ошибок и отвечает на запросы.
  • Клиенты получают ожидаемые IP-адреса (фиксированные и динамические).
  • Журналы не содержат критических ошибок в течение контролируемого периода тестирования.

Глоссарий

  • DHCP: протокол автоматической выдачи сетевых параметров.
  • ISC DHCP: реализация DHCP-службы от Internet Systems Consortium.
  • Lease: временная аренда IP-адреса клиенту.

Заключение

Вы успешно установили и настроили isc-dhcp-server на Ubuntu 20.04 и настроили клиентов как для статической, так и для динамической выдачи адресов. Если сеть использует netplan, применяйте netplan для клиентской конфигурации. При возникновении проблем используйте журналы systemd и файлы логов для диагностики.

Если нужно, могу прислать готовые файлы конфигураций под вашу сеть или помочь с миграцией на dnsmasq или systemd-networkd.

Поделиться: 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 быстро