dhcpsrv/README.ru.md

6.5 KiB
Raw Blame History

dhcpsrv

Последний релиз Лицензия: MIT

🇬🇧 English | 🇷🇺 На русском

Маленький портативный DHCP-сервер для ноутбука инженера хранения / серверов. Двойной клик — выбрал сетевую — готово. Живая таблица клиентов, статус ping, счётчики пакетов. Ничего не устанавливается, Python на целевой машине не нужен.

Сделан под сценарий «воткнул кабель, увидел как BMC получил IP» во время прошивки, восстановления и бенчмарков.

Автор: engelgardt.


Скачать

Последний релиз: страница релизов. Архив dhcpsrv-portable-vX.Y.Z.zip (~12 МБ).

Запуск

  1. Распакуй куда угодно.
  2. Двойной клик по dhcpsrv.exe.
  3. При первом запуске программа спросит язык интерфейса (1 — English, 2 — Русский). Ответ запишется в config.ini рядом с exe — потом можно поменять руками.
  4. Подтверди UAC (admin нужен, чтобы занять UDP/67 и переключить адаптер на статический IP).
  5. Выбери сетевой адаптер, воткнутый в твой сервер или коммутатор — это единственный вопрос.
  6. Ctrl+C — стоп. Спросит, вернуть ли адаптер обратно в DHCP.

Настройки по умолчанию (никаких других вопросов)

Параметр Значение
IP сервера 10.10.10.1/24
Пул 10.10.10.2 .. 10.10.10.51 (50 адресов)
Lease 7200 с (2 часа — переживёт долгий стресс-тест)
Опция TFTP IP сервера (BMC сразу увидит твой Tftpd32)

Что на экране

┌─ dhcpsrv v1.2.0 ────────────────────────────────────────────────────────┐
│ Сервер: 10.10.10.1/255.255.255.0  Пул: 10.10.10.210.10.10.51 …         │
│ Аренды: 3/50  Пакетов: 47  DISCOVER: 12  REQUEST: 11  RELEASE: 0        │
└─────────────────────────────────────────────────────────────────────────┘
┌─ Клиенты ───────────────────────────────────────────────────────────────┐
│  # │ IP           │ Имя хоста    │ MAC               │ Последний │ Пинг │
│  1 │ 10.10.10.2   │ server-01    │ a0:c5:f2:13:57:46 │ 17:42:18  │  OK  │
│  2 │ 10.10.10.3   │ server-02    │ 70:b3:d5:11:22:33 │ 17:42:21  │  --  │
└─────────────────────────────────────────────────────────────────────────┘
┌─ События ───────────────────────────────────────────────────────────────┐
│ [17:42:18] DISCOVER a0:c5:f2:13:57:46 → OFFER 10.10.10.2                │
│ [17:42:18] REQUEST  a0:c5:f2:13:57:46 → ACK   10.10.10.2                │
└─────────────────────────────────────────────────────────────────────────┘

Типичные сценарии

  • Сервер с общим LOM — один кабель в порт BMC/host, и BMC и хост-ОС получают IP с этого DHCP.
  • 8-портовый свитч — ноут на одном порту, до 7 серверов на остальных; пул из 50 адресов покрывает всех.
  • Прямой кабель в выделенный Mgmt-порт — один клиент (BMC).

Совместимость

  • Windows 10 / 11.
  • В списке адаптеров отфильтровано всё лишнее (Wi-Fi, Cisco AnyConnect, Hyper-V, VMware, VirtualBox, TAP/TUN, WireGuard, OpenVPN, Tailscale, ZeroTier).
  • Имена адаптеров с пробелами или не-ASCII экранируются корректно для netsh.

Конфиг

При первом запуске рядом с dhcpsrv.exe появится config.ini:

# Чтобы сменить язык интерфейса, измените 'language' ниже.
# Допустимые значения: en, ru
[General]
language = ru

В будущих релизах сюда же переедут пул, lease и IP сервера — пока что переменная одна.

Заметки

  • На машине ничего не устанавливается. Удалить — стереть папку.
  • UAC спросит каждый раз. (Если хочешь убрать на своей машине — пропусти dhcpsrv.exe через Scheduled Task с галкой «Run with highest privileges» и запускай через schtasks /run /tn dhcpsrv.)
  • Если в Tftpd32 включён модуль DHCP — отключи, UDP/67 окажется занят.
  • Lease по умолчанию 7200 с; клиент продлевает в середине срока. Если нужно «навсегда», исходник поддерживает 2147483647 — пересобери из исходников.

Сборка из исходников

python -m pip install rich pyinstaller
python -m PyInstaller --onefile --uac-admin --console --name dhcpsrv dhcpsrv-launcher.py

Лицензия

MIT — см. LICENSE.