2026-09-18

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

DHCP-сервер выдаёт клиентам сетевые настройки автоматически: IP-адрес, маску, шлюз, DNS и доменный суффикс. В Ubuntu он реализуется пакетом isc-dhcp-server. Инструкция подходит и для других DEB-систем (Debian, Astra Linux).


Установка и настройка

apt update
apt install isc-dhcp-server

Открываем конфигурацию:

vi /etc/dhcp/dhcpd.conf

Комментируем строки-примеры:

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Добавляем описание подсети:

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.200;
  option domain-name-servers 192.168.0.10, 192.168.0.11;
  option domain-name "imaxis.local";
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  default-lease-time 600;
  max-lease-time 7200;
}

где:

  • subnet — сеть для группы настроек; должна совпадать с сетью одного из интерфейсов сервера;
  • range — диапазон выдаваемых адресов;
  • option domain-name-servers — DNS-серверы через запятую;
  • option domain-name — доменный суффикс;
  • option routers — шлюз по умолчанию;
  • option broadcast-address — широковещательный адрес;
  • default-lease-time и max-lease-time — срок аренды и его максимум в секундах.

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

dhcpd -t -cf /etc/dhcp/dhcpd.conf
systemctl enable isc-dhcp-server
systemctl restart isc-dhcp-server

Если фаервол запрещающий, открываем UDP/67:

iptables -I INPUT -p udp --dport 67 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save

Возможные проблемы

Not configured to listen on any interfaces!

Сервис не запускается, в логе:

No subnet declaration for ens18 (192.168.1.10).
...
** Ignoring requests on ens18. If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface ens18 is attached. **
...
Not configured to listen on any interfaces

Причина: в конфиге описана подсеть, которой нет ни на одном интерфейсе сервера.

Решение: секция subnet должна описывать только подсети самого DHCP-сервера. Проверьте адреса:

ip a

и приведите dhcpd.conf в соответствие.


Тонкости и подводные камни

  • subnet и интерфейсы — сервер обслуживает только те сети, в которых сам имеет адрес.
  • Статическая адресация сервера — DHCP-сервер должен иметь фиксированный IP.
  • Диапазон и статика — не включайте в range адреса шлюзов, серверов и устройств со статикой.
  • Резервирование по MAC — фиксированный адрес клиенту задаётся в секции host.
  • Второй DHCP в сети — два сервера в одной подсети конфликтуют; используйте разные диапазоны или отключите один.
  • dhcpd -t перед перезапуском — проверяйте синтаксис, иначе сервис не стартует.
  • Логи — смотрите journalctl -u isc-dhcp-server и /var/log/syslog.
  • DHCP relay — для выдачи адресов в удалённых подсетях настраивается dhcrelay.

Шпаргалка

apt install isc-dhcp-server
vi /etc/dhcp/dhcpd.conf
# subnet 192.168.0.0 netmask 255.255.255.0 {
#   range 192.168.0.100 192.168.0.200;
#   option routers 192.168.0.1;
#   option domain-name-servers 192.168.0.10, 192.168.0.11;
# }
dhcpd -t -cf /etc/dhcp/dhcpd.conf
systemctl enable --now isc-dhcp-server
ip a    # проверить, что подсеть есть на интерфейсе

Проверено на: Ubuntu 22.04/24.04/26.04, Debian 12 + isc-dhcp-server.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *