TIL: красивые имена для сервисов в локалке через split-DNS
[TIL] Надоело лазить по сервисам через 192.168.1.10:8000, :8080, :9000 и помнить, кто на каком порту. Хотелось открывать их по-человечески: paperless.home.lan, nas.home.lan и так далее. Решается это split-DNS — когда твой локальный DNS отдаёт на эти имена внутренний IP сервера.
У меня в роли локального DNS уже стоит AdGuard Home, так что добавил всё в его DNS-rewrites. В UI это Filters → DNS rewrites, а если в конфиге AdGuardHome.yaml, то так:
filtering:
rewrites:
- domain: '*.home.lan'
answer: 192.168.1.10
Один wildcard — и любое имя в зоне home.lan резолвится в сервер. Удобно: завёл новый сервис, придумал ему имя, и оно сразу работает, без правки DNS.
Если AdGuard нет, ровно то же делается на dnsmasq одной строкой:
# /etc/dnsmasq.conf
address=/home.lan/192.168.1.10
Проверка, что отдаёт нужный IP:
nslookup paperless.home.lan 192.168.1.1
# Address: 192.168.1.10
Один нюанс: чтобы это работало на всех устройствах, в роутере DHCP должен раздавать именно этот DNS, иначе телефон пойдёт спрашивать у публичного резолвера и ничего не найдёт. Я взял зону .home.lan (не .local — её занимает mDNS, и не настоящий домен — чтобы не пересекаться с внешним миром).
Дальше повесил перед сервисами reverse-proxy, чтобы порты тоже спрятать, и теперь paperless.home.lan открывается просто в браузере. Маленькое удобство, а пользуюсь каждый день.