
屋企有 NAS/自架服務,先執好 DNS:本地記錄、內外網分流同回復指南
由 hostname 命名到 split DNS,一次執順屋企自架環境
DNS 值得早過新硬件處理
XDA 作者 Jeff Butts 分享,佢整理本地 DNS 記錄、hostname 同內外網分流之後,成套 home lab 用起上嚟順手咗。不過呢個只係作者個人經驗,唔代表 DNS 會令 NAS 跑快咗。佢真正解決嘅係管理成本:當屋企得一部 NAS,記住 IP 仲勉強得;加埋 Home Assistant、Proxmox、相簿、下載工具同幾個 container,bookmark 同 192.168.x.x:port 好快就會失控。DNS 畀每項服務一個固定名,換 IP 或搬去另一部機時,改記錄就得,其他裝置唔使逐部執。
Hostname 要分清「部機」同「項服務」
命名最好由一套簡單規則開始,例如實體機用 nas01、mini01,虛擬機用 vm-ha01;面向人用嘅服務就另開 photos、ha、status 呢類名稱。咁 nas01.home.arpa 代表部機,photos.home.arpa 就代表相簿服務,日後相簿搬走都唔使改網址。IP 方面要配合 router 嘅 DHCP reservation,否則裝置重新攞地址,本地記錄仍然指住舊 IP。亦唔好隨手自創 .local:佢通常留畀 mDNS。純屋企 LAN 可以用 IETF 指定嘅 home.arpa;如果想要公開信任嘅 HTTPS 憑證,就用自己真正控制嘅 domain。
Split DNS 做嘅係派唔同答案
所謂 split-horizon DNS,即係同一個名稱喺屋企 LAN 查詢時回覆私人 IP,離開屋企就回覆另一個公開地址,或者乾脆冇公開 A/AAAA 記錄。例如 photos.example.com 喺屋企指向 reverse proxy 嘅 LAN IP,外面就只經 VPN 先查到。好處係本地流量唔使兜去公網地址再返入屋,亦避開部分 router 唔支援 NAT loopback 嘅麻煩。Synology DNS Server 嘅 Views 就係做類似分流。不過 DNS 只係答你去邊個 IP,唔會自動開通連線;離家後仍然要靠 VPN、port forwarding 或其他安全通道先入到屋企。
DNS、VPN 同 TLS 各自管唔同一層
呢三樣最易撈亂。DNS 管名稱去邊個 IP;VPN 負責畀外面部裝置行入私人 LAN;TLS 憑證就證明你連緊嘅 hostname 同加密連線相符。改好 DNS 唔會令服務自動有 HTTPS,攞到憑證亦唔代表個管理介面應該公開。若果服務只喺 LAN 或 VPN 入面,Let’s Encrypt 嘅 DNS-01 驗證仍可用 DNS TXT 記錄證明 domain 控制權,web server 唔使公開畀外界。不過自動續證用嘅 DNS API 權限要收窄,最好只准改 _acme-challenge,唔好將整個 domain 嘅管理權塞入每部 server。
DoH 可能繞過你啱啱整好嘅本地 DNS
裝置經 DHCP 用屋企 resolver,唔代表每個 browser 同 app 都會照跟。DNS over HTTPS 會加密查詢,但如果 browser 直接問外面嘅 DoH provider,對方自然唔識你嘅本地記錄;Mozilla 亦清楚列明 DoH 可能繞過本地 resolver。遇到「系統查到、browser 開唔到」時,先檢查 browser 嘅 Secure DNS/DoH 模式,視乎設定改用本地 provider、為內部 domain 加例外,或者交畀支援 split DNS 嘅 VPN 管。唔使為咗自架服務全面關閉 DoH,重點係每條內部查詢有明確去向。
「第二個 DNS」唔可以求其填 1.1.1.1
好多 router 可以經 DHCP 派兩個 resolver,但 client 未必等第一個死咗先問第二個,有啲會揀回應快嗰個。如果第一個係本地 DNS、第二個係公開 resolver,結果可能時得時唔得:公開 resolver 唔識 nas.home.arpa,亦可能回覆服務嘅外網地址。穩陣做法係兩個本地 resolver 都持有同一批內部記錄,再各自連上游 DNS;做唔到雙機,就至少抄低 NAS、hypervisor、router 同 DNS 主機嘅管理 IP,放一份喺屋企 LAN 以外。監察時亦要實際查一個內部名同一個外部名,淨係見到 container 仲行緊唔代表 DNS 正常。
動手前先寫低點樣返轉頭
先匯出 router 嘅 DHCP reservation、本地 DNS zone、Pi-hole 或 DNS Server 設定,再記低原本 DHCP 派緊邊個 DNS,同幾部核心主機嘅固定 IP。跟住揀一部電腦手動指定新 resolver,逐項測試內部 A/AAAA 記錄、普通網站、HTTPS 憑證同 VPN 連線;全部正常先改 router 嘅 DHCP 設定。出事時就將 DHCP DNS 改返舊值,重新連 Wi‑Fi 或更新租約,再用已抄低嘅 IP 直入管理介面。IPv6 亦要一齊查,殘留嘅 AAAA 記錄足以令部分 client 行錯路。
DNS 唔會幫你收埋 port
最後一個常見誤會:DNS 記錄只處理名稱同 IP,ha.home.arpa 唔會自動知道 Home Assistant 用邊個 port。想由 http://IP:port 變成乾淨 HTTPS 網址,通常仲要 reverse proxy 將唔同 hostname 分流去後面各項服務。呢步會擴大 reverse proxy 嘅責任,設定前要確認邊啲介面只准 LAN 或 VPN 存取。屋企自架服務開始多起上嚟,先統一名稱、地址分配同回復路線,之後加新機先唔會愈加愈亂。
參考來源
- XDA Developers — I spent a weekend on DNS and it fixed my entire home lab — original report
- RFC 8375:Special-Use Domain 'home.arpa.' — 核實
home.arpa係屋企 LAN 專用名稱空間,亦解釋點解唔應再自創.home。 - RFC 9704:Establishing Local DNS Authority in Validated Split-Horizon Environments — 核實 split-horizon DNS 定義、加密 DNS client 同本地 resolver 之間嘅關係。
- Synology DNS Server:Views — Synology 正式文件,確認 Views 可以按查詢來源提供唔同 DNS 記錄。
- DNS in Tailscale — 核實 VPN、MagicDNS、restricted nameserver 同 split DNS 嘅設定分工。
- Firefox DNS over HTTPS — Mozilla 正式說明 DoH 可能繞過本地 resolver,同相關例外及 fallback 行為。
- Let's Encrypt:Challenge Types — 核實 DNS-01 可替冇公開 web server 嘅 domain 驗證及簽發憑證,亦列出 API credential 風險。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







