找回密碼
 立即註冊
    查看: 185|回覆: 0

    家裡的 DNS 從零規劃:本地名稱、AdGuard Home、強制攔截,以及不會讓全家斷網的備援

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 10:54:38 | 顯示全部樓層 |閱讀模式
    DNS 是那種「平常不會想到,但一壞掉全家什麼都不能用」的東西。

    這篇把一套完整的家庭 DNS 從零建起來:用名字連 NAS、全家擋廣告、看得到 IoT 裝置在連哪裡、裝置想繞過你的 DNS 也繞不掉,而且擋廣告的機器掛了全家還是能上網。

    每一步都有「你會看到什麼」。

    擋廣告的機器掛了全家還是能上網

    做完這篇你會有什麼


    • 用 http://nas.home.arpa 這種名字連家裡的服務,不用背 IP
    • 全家所有裝置(含手機 App、智慧電視、IoT)自動擋廣告與追蹤
    • 一份查詢日誌,看得到每台裝置在連哪些網域
    • 寫死 8.8.8.8 的裝置也會被抓回來
    • 擋廣告的服務掛掉時,全家還是上得了網(這一段是最多人做漏的)


    ---

    先搞懂查詢的路徑(後面每一步都在這條路上動手腳)
    1. 裝置
    2.   ↓ 問 DHCP 發給它的 DNS 伺服器(通常是路由器 192.168.1.1)
    3. 路由器的 dnsmasq
    4.   ↓ 自己答得出來的就直接答(本地主機名、DHCP 租約)
    5.   ↓ 答不出來就問上游
    6. 上游 DNS(ISP 的、或 8.8.8.8、或 Quad9)
    7.   ↓ 一層一層查到答案
    8. 回傳 IP
    複製代碼

    每一層都可以介入。我們要做的四件事分別發生在不同層:


    • 本地名稱 → 在 dnsmasq 那一層加記錄
    • 擋廣告 → 在 dnsmasq 和上游之間插一個 AdGuard Home
    • 強制攔截 → 在防火牆那一層,把所有 53 埠的流量抓回來
    • 加密查詢 → 在 AdGuard Home 到上游那一段


    ---

    第一步:決定你家的網域名稱

    五分鐘的決定,但改起來很麻煩,所以先想清楚。

    用這個:


    • .home.arpa —— RFC 8375 正式保留給家庭網路,保證不會跟任何真實網域撞到。最正確的選擇
    • .lan —— 事實上的慣例,OpenWrt 的預設值。打字短,但它不是正式保留的
    • .internal —— 也是保留用途,2024 年之後常見


    絕對不要用這些:


    • .local —— 這是 mDNS 專用的。拿來當一般 DNS 的網域,會出現「有時候通有時候不通」的詭異狀況,因為同一個名字有兩套機制在搶著回答,而哪一套先回來是不確定的
    • .dev、.app、.zip —— 這些是真實存在的頂級網域,而且瀏覽器對它們強制 HTTPS
    • 你自己的真實網域(例如 example.com)—— 可以做,但你必須同時管好內外兩份記錄,任何一邊漏掉都會很難查


    本篇用 .home.arpa。要改成 .lan 的話,把下面所有設定裡的 `home.arpa` 換掉就好。

    ---

    第二步(OpenWrt):本地名稱解析

    編輯 /etc/config/dhcp。找到 `config dnsmasq` 那一段(檔案最上面),改成:
    1. config dnsmasq
    2.         option domainneeded '1'
    3.         option localise_queries '1'
    4.         option rebind_protection '1'
    5.         option rebind_localhost '1'
    6.         option local '/home.arpa/'
    7.         option domain 'home.arpa'
    8.         option expandhosts '1'
    9.         option authoritative '1'
    10.         option readethers '1'
    11.         option leasefile '/tmp/dhcp.leases'
    12.         option localservice '1'
    13.         option ednspacket_max '1232'
    複製代碼

    幾個關鍵選項在做什麼


    • local '/home.arpa/' —— 告訴 dnsmasq「home.arpa 結尾的查詢由我自己回答,不要往上游問」。沒這行的話,你的內部名稱會被送到網際網路上,既洩漏資訊又慢
    • domain 'home.arpa' —— DHCP 發給客戶端的預設搜尋網域。設好之後打 `ping nas` 會自動補成 `nas.home.arpa`
    • expandhosts '1' —— 把沒有網域的主機名自動補上 domain。沒這行的話只有 `nas` 能用、`nas.home.arpa` 不行
    • rebind_protection '1' —— 擋 DNS rebinding 攻擊。副作用是上游回傳私有 IP 的查詢會被丟掉,如果你用了某些把服務指到內網 IP 的公開網域(例如某些自架服務的 DDNS),要把那個網域加進例外:`list rebind_domain 'yourdomain.com'`
    • localservice '1' —— 只回應本地網段的查詢。這一行是安全設定,不要拿掉


    然後在同一個檔案裡,為每台固定 IP 的機器加一筆:
    1. config host
    2.         option name 'nas'
    3.         option mac 'AA:BB:CC:DD:EE:FF'
    4.         option ip '192.168.1.20'
    5.         option dns '1'
    6. config host
    7.         option name 'ha'
    8.         option mac '11:22:33:44:55:66'
    9.         option ip '192.168.1.50'
    10.         option dns '1'
    11. config host
    12.         option name 'printer'
    13.         option mac '77:88:99:AA:BB:CC'
    14.         option ip '192.168.1.60'
    15.         option dns '1'
    複製代碼

    `option dns '1'` 不要漏 —— 沒有它,DHCP 保留會生效(機器拿得到固定 IP),但名稱不會註冊到 DNS,`ping nas` 還是不通。症狀看起來像「保留沒生效」,其實是兩件事。

    MAC 位址從哪來:
    1. cat /tmp/dhcp.leases
    複製代碼

    輸出一行一台,第二欄就是 MAC:
    1. 1758801234 aa:bb:cc:dd:ee:ff 192.168.1.113 Synology-NAS *
    複製代碼

    自訂記錄(指向不在 DHCP 裡的東西)

    例如 NAS 上跑了好幾個 Docker 服務,全都在同一個 IP:
    1. config domain
    2.         option name 'grafana.home.arpa'
    3.         option ip '192.168.1.20'
    4. config domain
    5.         option name 'frigate.home.arpa'
    6.         option ip '192.168.1.20'
    7. config domain
    8.         option name 'jellyfin.home.arpa'
    9.         option ip '192.168.1.20'
    複製代碼

    套用:
    1. service dnsmasq restart
    複製代碼

    你會看到什麼

    在任何一台區網的電腦上:
    1. nslookup nas.home.arpa 192.168.1.1
    複製代碼

    期望輸出:

    以下還有約 80% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-11-10 00:45 , Processed in 0.122683 second(s), 25 queries .

    快速回覆 返回頂部 返回列表