6.5 KiB
6.5 KiB
dhcpsrv
English | Русский
Маленький портативный DHCP-сервер для ноутбука инженера хранения / серверов. Двойной клик — выбрал сетевую — готово. Живая таблица клиентов, статус ping, счётчики пакетов. Ничего не устанавливается, Python на целевой машине не нужен.
Сделан под сценарий «воткнул кабель, увидел как BMC получил IP» во время прошивки, восстановления и бенчмарков.
Автор: engelgardt.
Скачать
Последний релиз: страница релизов.
Архив dhcpsrv-portable-vX.Y.Z.zip (~12 МБ).
Запуск
- Распакуй куда угодно.
- Двойной клик по
dhcpsrv.exe. - При первом запуске программа спросит язык интерфейса (1 — English, 2 — Русский). Ответ запишется в
config.iniрядом с exe — потом можно поменять руками. - Подтверди UAC (admin нужен, чтобы занять UDP/67 и переключить адаптер на статический IP).
- Выбери сетевой адаптер, воткнутый в твой сервер или коммутатор — это единственный вопрос.
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.2–10.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.