Подробный гайд: Как сделать Динамический IP (DHCP)

Полный гайд по настройке DHCP: автоматическая раздача динамических IP для клиентов и серверов на Windows, Linux и роутерах. Решения частых ошибок сети.

2026.09.24                  


Подробный гайд: Как сделать Динамический IP (DHCP)Подробный гайд: Как сделать Динамический IP (DHCP) DHCP (Dynamic Host Configuration Protocol) — протокол динамической настройки хоста. Он автоматически назначает IP-адреса и сетевые параметры устройствам в сети, устраняя необходимость ручной настройки каждого устройства.

Как работает DHCP (процесс DORA):

Клиент                          Сервер DHCP
   |                                 |
   |--- 1. DISCOVER (поиск) ------->|
   |                                 |
   |<--- 2. OFFER (предложение) ----|
   |                                 |
   |--- 3. REQUEST (запрос) ------->|
   |                                 |
   |<--- 4. ACK (подтверждение) ----|
   |                                 |



Что выдаёт DHCP:

  • IP-адрес
  • Маска подсети
  • Шлюз по умолчанию
  • DNS-серверы
  • Время аренды (lease time)

Часть 1: Настройка клиента (получение динамического IP)

Windows 10/11

Способ 1: Через GUI

  1. Нажмите Win + I → Сеть и интернет
  2. Выберите ваше подключение (Ethernet / Wi-Fi)
  3. Нажмите Изменить параметры адаптера (или ncpa.cpl)
  4. ПКМ по адаптеру → Свойства
  5. Выберите IP версии 4 (TCP/IPv4) → Свойства
  6. Отметьте:
    • Получить IP-адрес автоматически
    • Получить адрес DNS-сервера автоматически
  7. Нажмите ОК → ОК

Способ 2: Через командную строку (cmd от администратора)

:: Установить DHCP на интерфейсе
netsh interface ip set address "Ethernet" dhcp

:: Установить DNS через DHCP
netsh interface ip set dns "Ethernet" dhcp

:: Обновить аренду IP
ipconfig /release
ipconfig /renew

:: Проверить результат
ipconfig /all

Способ 3: Через PowerShell

# Установить DHCP на адаптере
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled

# Установить DNS через DHCP
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses

# Перезапустить адаптер
Restart-NetAdapter -Name "Ethernet"

# Проверить
Get-NetIPConfiguration -InterfaceAlias "Ethernet"

Linux (Ubuntu/Debian)

Способ 1: Netplan (Ubuntu 18.04+)

Создайте/отредактируйте файл /etc/netplan/01-dhcp.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:                    # ← имя вашего интерфейса (ip a)
      dhcp4: true
      dhcp6: false           # опционально
      optional: true

Примените:

sudo netplan apply

Способ 2: NetworkManager (nmcli)

# Установить DHCP через nmcli
sudo nmcli connection modify "Wired connection 1" ipv4.method auto
sudo nmcli connection modify "Wired connection 1" ipv6.method auto

# Перезапустить подключение
sudo nmcli connection down "Wired connection 1"
sudo nmcli connection up "Wired connection 1"

# Проверить
nmcli device show eth0

Способ 3: /etc/network/interfaces (Debian, старый стиль)

sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
sudo systemctl restart networking
# или
sudo dhclient -r && sudo dhclient eth0

Проверка:

ip addr show eth0
cat /var/lib/dhcp/dhclient.leases

Linux (RHEL/CentOS/Rocky)

NetworkManager (nmcli):

sudo nmcli connection modify "System eth0" ipv4.method auto
sudo nmcli connection up "System eth0"

Файл конфигурации /etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
sudo systemctl restart NetworkManager

Часть 2: Настройка DHCP-сервера

Вариант A: DHCP-сервер на Linux (isc-dhcp-server)

Установка:

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

Настройка интерфейса — /etc/default/isc-dhcp-server:

INTERFACESv4="eth0"
INTERFACESv6=""

Основная конфигурация — /etc/dhcp/dhcpd.conf:

# Глобальные параметры
option domain-name "example.local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;          # 10 минут
max-lease-time 7200;             # 2 часа
authoritative;

# Подсеть
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;      # Пул адресов
    option routers 192.168.1.1;              # Шлюз
    option broadcast-address 192.168.1.255;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 8.8.8.8, 1.1.1.1;
}

# Статическая привязка (резервирование)
host printer {
    hardware ethernet 00:1A:2B:3C:4D:5E;
    fixed-address 192.168.1.50;
}


Запуск:

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

Логи:

sudo journalctl -u isc-dhcp-server -f
# или
cat /var/log/syslog | grep dhcpd

Вариант B: DHCP-сервер на Linux (dnsmasq — лёгкий)

sudo apt install dnsmasq -y

/etc/dnsmasq.conf:

interface=eth0
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h
dhcp-option=3,192.168.1.1          # шлюз
dhcp-option=6,8.8.8.8,1.1.1.1     # DNS
dhcp-host=00:1A:2B:3C:4D:5E,192.168.1.50   # резерв
sudo systemctl restart dnsmasq

Вариант C: DHCP на роутере (общий случай)

  1. Откройте веб-интерфейс роутера: http://192.168.0.1 или http://192.168.1.1
  2. Войдите (admin/admin или данные на наклейке)
  3. Найдите раздел: LAN / Локальная сеть / DHCP
  4. Включите DHCP Server: Enable
  5. Укажите:
    • Начальный IP: 192.168.1.100
    • Конечный IP: 192.168.1.200
    • Маска: 255.255.255.0
    • Шлюз: 192.168.1.1
    • DNS: 8.8.8.8 / 1.1.1.1
    • Время аренды: 86400 сек (24 ч)
  6. Сохраните и перезагрузите роутер

Вариант D: DHCP на Windows Server

# Установить роль
Install-WindowsFeature DHCP -IncludeManagementTools

# Создать scope (область)
Add-DhcpServerv4Scope -Name "Office" `
    -StartRange 192.168.1.100 `
    -EndRange 192.168.1.200 `
    -SubnetMask 255.255.255.0 `
    -State Active

# Настроить параметры
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 `
    -Router 192.168.1.1 `
    -DnsServer 8.8.8.8, 1.1.1.1

# Авторизовать в AD (если домен)
Add-DhcpServerInDC -DnsName "dhcpserver.domain.local"

Часть 3: Диагностика и устранение неполадок

Полезные команды

Задача Windows Linux
Посмотреть IP ipconfig /all ip addr show
Освободить IP ipconfig /release sudo dhclient -r
Получить новый ipconfig /renew sudo dhclient eth0
Сбросить кэш DNS ipconfig /flushdns sudo systemd-resolve --flush-caches
Таблица маршрутов route print ip route show
Проверить DHCP netsh interface ip show config cat /var/lib/dhcp/dhclient.leases

Типичные проблемы:

IP 169.254.x.x (APIPA) — DHCP-сервер недоступен:

# Проверить, поднят ли интерфейс
ip link set eth0 up

# Проверить кабель / Wi-Fi подключение
# Проверить, работает ли DHCP-сервер
sudo tcpdump -i eth0 port 67 or port 68 -n

Конфликт IP-адресов:

# Windows
arp -a

# Linux
sudo arping -I eth0 192.168.1.100

Сервер не выдаёт адреса:

# Проверить, слушает ли сервер
sudo ss -ulnp | grep :67

# Проверить firewall
sudo iptables -L -n | grep 67
sudo ufw allow 67/udp
sudo ufw allow 68/udp

Часть 4: Лучшие практики

Рекомендация Пояснение
Резервируйте IP для серверов/принтеров dhcp-host по MAC-адресу
Не включайте весь диапазон в пул Оставьте .1–.99 для статики
Время аренды 8–24 ч для офисов Баланс между стабильностью и оборотом
Укажите 2 DNS-сервера Отказоустойчивость
Ведите логи DHCP Аудит и диагностика
Один DHCP на подсеть Избегайте конфликтов

Быстрый чек-лист

[ ] 1. Определите роль: клиент или сервер?
[ ] 2. Клиент → включите "получать автоматически"
[ ] 3. Сервер → установите DHCP-демон
[ ] 4. Сервер → настройте пул, шлюз, DNS
[ ] 5. Сервер → настройте firewall (UDP 67/68)
[ ] 6. Проверьте: клиент получает IP
[ ] 7. Проверьте: пингуется шлюз и интернет

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта