AdGuard Home vs Pi-hole:搭建全家局域網 DNS 廣告過濾伺服器評測
零頻寬浪費:廣告連請求都不會發出去,自然不會佔用頻寬。
跨平台、跨瀏覽器:沒有瀏覽器相容性問題,也沒有作業系統限制。
當然,DNS 過濾也不是萬能的。它擋不住與正常內容共用同一個網域的廣告(例如 YouTube 的插播廣告、Facebook 的贊助貼文),因為那些請求跟正常內容走的是同一個域名。DNS 過濾的定位是「攔截廣告與追蹤的底層基礎設施」,而不是取代瀏覽器擴充套件。兩者搭配使用效果最好。
兩大主角登場:AdGuard Home 與 Pi-hole
理解了原理之後,接下來看工具。這兩個專案經常被拿來比較,但它們的出身、哲學與發展路徑其實差異不小。
AdGuard Home 的發展脈絡與定位
AdGuard 這家公司原本是做付費廣告攔截軟體起家的,橫跨 Windows、macOS、Android、iOS 等平台。AdGuard Home 是他們在 2018 年開源的專案,定位非常清楚:一個用 Go 語言寫成的單一執行檔,內建 Web 管理介面,開箱即用。
它的設計哲學偏向「產品化」:安裝流程極簡、介面美觀現代、預設就支援加密 DNS(DNS-over-TLS、DNS-over-HTTPS、DNS-over-QUIC),而且內建 DHCP 伺服器、家長控制、安全搜尋強制等功能。對不想折騰的人來說,AdGuard Home 的「完成度」明顯更高。
不過它也有明顯的隱憂:專案的主要維護者是 AdGuard 這家公司,社群的參與度相對較低。過去幾年它的更新節奏明顯放緩,很多社群期待已久的功能(例如更完善的規則訂閱管理、更細緻的統計)遲遲沒有進展。有人戲稱它「已經夠好用,所以沒人急著改」。
Pi-hole 的社群生態與定位
Pi-hole 的故事更有「草根傳奇」的味道。它最早是 2015 年由 Jacob Salmela 等人發起的專案,原本只是為了在樹莓派上跑一個廣告過濾器。它的名字來自「用樹莓派(Raspberry Pi)把廣告打一個洞」這個概念。
Pi-hole 的架構傳統上比較「拼裝」:底層用 dnsmasq(後來演進為自家開發的 FTL DNS 引擎),網頁介面用 PHP,前面再掛一個 lighttpd 網頁伺服器。這套架構在樹莓派上跑了很多年,非常穩定,但也讓安裝過程相對繁瑣,對新手不算友善。
不過 2025 年推出的 Pi-hole v6 是一次徹底的翻新:官方拿掉了 PHP 與 lighttpd 的依賴,改用內嵌的網頁伺服器與全新的 REST API,安裝流程大幅簡化,同時保留了原本的社群規則清單生態。這個改動讓 Pi-hole 在「現代化」這條路上追近了不少。
Pi-hole 最大的資產是社群。它的論壇、Reddit 板、Discord 頻道非常活躍,各種現成的封鎖清單(blocklist)推薦、一鍵腳本、整合方案(例如與 Unbound 搭配做遞迴查詢)多到看不完。遇到問題時,你能找到的解答數量遠多於 AdGuard Home。
安裝與部署體驗比較
對於大多數想自建 DNS 過濾的人來說,安裝體驗往往是決定選擇的第一道門檻。這一段我們實際比較兩者在常見環境下的部署流程。
硬體與系統需求
先講結論:兩者的硬體門檻都非常低,一台樹莓派 3B 以上的設備就能輕鬆勝任,甚至閒置的舊筆電、NAS、軟路由(如 OpenWrt 裝置)、迷你主機都可以。
adguard/adguardhome。因為是單一 Go 執行檔,幾乎沒有依賴問題。記憶體佔用大約落在 40~120 MB,視規則數量而定。pihole/pihole)。在 v6 之後,依賴需求大幅降低,但仍建議使用 Debian / Ubuntu 系的系統。記憶體佔用約 60~150 MB,同樣取決於規則數量與 FTL 資料庫大小。如果你的設備是 ARM 架構的樹莓派,兩者都有對應的安裝方式;如果是 x86 的迷你主機,兩者也都沒問題。真要說差異,AdGuard Home 在非 Linux 系統(例如直接在 Windows 上跑)的支援度更好,Pi-hole 基本上不建議在 Windows 上原生安裝。
安裝流程對比
AdGuard Home 的安裝堪稱無腦。以 Linux 為例,一行指令就能搞定:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
執行完後,打開瀏覽器連到 http://你的IP:3000,就會進入一個圖形化的初始設定精靈,引導你設定管理介面的連接埠、DNS 監聽位址、帳號密碼。整個過程大概五分鐘內可以完成,中間不需要碰任何設定檔。
Pi-hole 的經典安裝方式同樣是一行指令:
curl -sSL https://install.pi-hole.net | bash
但這行指令之後會跳出一個文字介面的互動式精靈(在 v5 時代尤其明顯),需要你選擇上游 DNS 供應商、選擇要啟用的封鎖清單、確認網路介面等等。對熟悉 Linux 的人來說很直覺,但對完全的新手來說,那些選項(例如「你要用哪個 upstream DNS?」)可能會讓人愣住。v6 之後這個流程有改善,但仍偏向「文字介面為主」。
如果走 Docker 路線,兩者的差異变小:都是拉映像、掛載設定檔、設定連接埠。差別在於 AdGuard Home 的設定全部存在一個 AdGuardHome.yaml 裡,備份還原非常簡單;Pi-hole 的設定則分散在幾個檔案與 FTL 資料庫中,備份相對麻煩一些(但 v6 有改善)。
初始設定精靈
AdGuard Home 的初始設定精靈是純網頁的,會一步一步問你「管理介面要用哪個連接埠」、「DNS 要監聽哪個介面」、「要不要設定帳號密碼」。對不熟悉網路概念的人來說,它有清楚的說明文字,而且每一步都有預設值可以直接下一步。
Pi-hole 在 v6 之後也提供了網頁版的初始設定,但整體體驗仍不如 AdGuard Home 那麼「產品化」。如果你是完全的新手,我認為 AdGuard Home 的第一次接觸體驗明顯勝出。
功能與介面深度對比
安裝只是開始,真正決定長期使用的是功能與介面。這一段是本文的核心。
儀表板與統計資訊
兩者都有即時儀表板,但風格差異很大。
AdGuard Home 的儀表板走的是現代扁平化設計:左上角顯示今日總查詢數、被攔截數、攔截比例,中間有查詢量隨時間變化的折線圖,右側則是「前幾名被攔截的網域」、「前幾名查詢的客戶端」、「前幾名上游伺服器」等排行。整體視覺非常清爽,配色舒服,資料密度恰到好處。
Pi-hole 的儀表板則是經典的「資訊面板」風格:一個大大的圓餅圖顯示攔截比例,旁邊列出總查詢數、攔截數、快取命中率、轉發次數等等。它的資訊量其實非常豐富,尤其是「查詢類型分佈」、「上游伺服器回應時間」這些細節,對想深入調校的人很有價值。v6 的介面現代化了不少,但整體仍偏向「工具感」而非「產品感」。
個人主觀評價:AdGuard Home 更好看、更容易一眼看懂;Pi-hole 的資料更細、更適合挖數據。
過濾規則與清單管理
這是兩者最核心的功能,也是差異最明顯的地方。
AdGuard Home 的「過濾器」頁面讓你可以新增多個清單,每個清單可以設定為「封鎖清單」或「允許清單」,並支援自動更新頻率。它原生支援多種規則語法,包括 AdGuard 自家的語法、Hosts 格式、以及常見的網域清單。它也內建「自訂過濾規則」欄位,可以直接貼上自己想擋的網域或正規表達式。
比較特別的是,AdGuard Home 支援 「客戶端設定」,你可以針對不同的裝置(用 IP 或 MAC 識別)套用不同的規則集。例如:小孩的平板用嚴格清單、自己的電腦用寬鬆清單、IoT 裝置全部走最嚴格的白名單模式。這個功能在 Pi-hole 裡要達成相對麻煩(需要靠 group management,設定較複雜)。
Pi-hole 的規則管理核心概念是「Gravity」,也就是把所有訂閱的清單合併成一個統一的資料庫。你可以在 Adlists 頁面新增清單網址,然後執行 pihole -g(或從介面點「Update Gravity」)來重新抓取。它的黑名單/白名單管理很直覺,也支援正規表達式。
Pi-hole 的優勢在於社群清單的豐富度。因為它歷史悠久,網路上有大量「Pi-hole 推薦清單」的文章與腳本,甚至有人整理了「一鍵匯入幾十個清單」的腳本。AdGuard Home 雖然也能吃這些清單(格式大多相容),但專門為它整理的資源相對少一些。
進階功能:加密 DNS、DHCP、家長控制
這一段是 AdGuard Home 明顯拉開差距的地方。
加密 DNS(DoH / DoT / DoQ):AdGuard Home 原生就支援把查詢透過 DNS-over-TLS、DNS-over-HTTPS、DNS-over-QUIC 轉發到上游,也支援對外提供加密 DNS 服務。這代表你的 DNS 查詢在離開家用網路之後是加密的,ISP 無法輕易窺探你查了哪些網域。Pi-hole 傳統上需要額外安裝 cloudflared 或 unbound 來達成類似效果,v6 雖然有改善,但原生整合度仍不如 AdGuard Home。
DHCP 伺服器:AdGuard Home 內建 DHCP 伺服器,可以直接取代路由器派發 IP 與 DNS 設定。這對「想讓全家裝置自動指向自己的 DNS」這件事非常方便,因為你不需要去路由器裡改設定(有些路由器的設定還特別難找)。Pi-hole 也有 DHCP 功能(基於 dnsmasq),但介面整合度稍弱。
家長控制與安全搜尋:AdGuard Home 內建「安全搜尋強制」(把 Google、Bing、YouTube 的安全搜尋模式強制打開)、「家長控制」(封鎖成人內容)、「安全瀏覽」(封鎖惡意軟體網域)。這些都是勾選即用的功能。Pi-hole 要達成類似效果,通常得自己找對應的封鎖清單來訂閱。
客戶端管理與個別裝置策略
前面提過,AdGuard Home 的「客戶端」管理非常直覺:它會自動列出所有曾經查詢過的裝置,你可以為每個裝置命名、指定固定的規則集。這對於「我不想擋自己電腦上的廣告,但我要擋小孩平板上的一切」這種需求非常實用。
Pi-hole 的對應功能叫做「Group Management」,你需要建立群組、把客戶端加入群組、再為群組指定清單。功能上其實更強大、更靈活,但設定路徑比較繞,需要花時間理解它的邏輯。
效能、資源佔用與穩定性實測
講完功能,來談比較硬的部分。以下數據來自個人在樹莓派 4B(4GB 版本)與一台 x86 迷你主機(Intel N100)上的實際測試,僅供參考,實際數字會因規則數量與查詢量而異。
記憶體與 CPU 佔用
在訂閱了大約 15 萬條規則、每日查詢量約 5 萬次的情境下:
兩者差距不大,Pi-hole 稍微多吃一點記憶體,但都在樹莓派能輕鬆負荷的範圍內。如果你的設備更弱(例如樹莓派 Zero 2 W),兩者也都能跑,只是查詢量大的時候可能會感到一點延遲。
查詢延遲與吞吐量
這是很多人關心的重點:自建 DNS 會不會讓上網變慢?
實測結果是:幾乎感受不到差異,甚至可能變快。因為兩者都有快取機制,常用網域第二次查詢時直接從本地記憶體回答,延遲通常低於 1 毫秒。真正決定你上網速度的,是你選擇的上游 DNS 伺服器(例如 Cloudflare 1.1.1.1、Google 8.8.8.8、或你 ISP 的 DNS)。
在吞吐量方面,兩者都能輕鬆處理每秒數千次的查詢。家用環境(幾十台裝置)完全不是問題。真正需要注意的是「冷啟動」時的規則載入時間:規則數量越多,啟動越慢。15 萬條規則的情況下,AdGuard Home 啟動約需 3~5 秒,Pi-hole 的 Gravity 更新則需要 10~30 秒(但只在更新時發生)。
長時間運行穩定性
連續運行 90 天的觀察:兩者都沒有出現崩潰或記憶體洩漏的明顯問題。Pi-hole 的 FTL 引擎非常老練,穩定度有口皆碑;AdGuard Home 的 Go 執行檔同樣可靠。真要說差異,Pi-hole 在處理「大量並發查詢 + 頻繁更新 Gravity」時,偶爾會出現短暫的查詢延遲(因為更新時會鎖資料庫),AdGuard Home 在這方面表現得平滑一些。
兩者都支援開機自動啟動(systemd service),斷電重開後都能自動恢復。以「裝了就不管」的角度來看,兩者都合格。
實際部署情境與常見坑
理論講完了,來談實戰。這一段是我自己踩過、也在社群裡看過無數次的常見問題。
路由器 DNS 設定與 DHCP 派發
最常見的部署方式有兩種:
建議的做法是:在路由器 DHCP 設定裡,把「主要 DNS」設為你的過濾伺服器,並把「次要 DNS」留空或設成同一個 IP。絕對不要設成 8.8.8.8,否則裝置有可能繞過你的過濾器。
避免自己把自己鎖在外面
這是新手最經典的災難:啟用過濾後,發現自己連管理介面都打不開,因為管理介面的網域被自己的規則擋掉了,或者 DNS 設定錯誤導致無法解析任何網域。
解法很簡單:在 AdGuard Home 或 Pi-hole 裡,把管理介面使用的 IP 位址或網域加入允許清單。另外,永遠保留一個「應急方案」:記住伺服器的區網 IP,直接用 IP 連線(http://192.168.x.x),因為 IP 連線不需要 DNS 解析。還有一招是準備一個沒有指向過濾伺服器的網路(例如手機熱點),緊急時可以連上去查資料。
行動裝置在外網的處理
家裡的裝置沒問題,但手機出門用 4G/5G 的時候,就不會經過你家的 DNS 了。這時候廣告又回來了。
常見的解法有幾種:
該選哪一個?選購建議與結論
經過一整輪比較,該做決定了。我的結論是:沒有絕對的贏家,只有適不適合你的情境。
適合 AdGuard Home 的使用者
你希望安裝完五分鐘就能用,不想讀一堆文件。
你想要針對不同裝置套用不同規則,而且希望設定介面直覺。
你需要家長控制、安全搜尋強制這類開箱即用的功能。
你在 Windows 或 macOS 上也想跑 DNS 過濾。
你在意介面美觀與使用體驗。
適合 Pi-hole 的使用者
你重視社群資源與疑難排解,希望遇到問題時有一堆現成解答。
你已經是樹莓派生態的愛好者,習慣 Pi-hole 的運作方式。
你想要更細緻的統計數據,喜歡盯著查詢日誌研究。
你偏好開源社群主導的專案,而不是單一公司主導。
兩者並存的可能
其實,這兩個工具並不是非得二選一。有一種進階玩法是:用 AdGuard Home 當前端過濾器,把 Pi-hole 放在後面當上游,或者反過來。這樣你可以同時享受 AdGuard Home 的介面與功能,以及 Pi-hole 的社群清單生態。不過對大多數家庭使用者來說,這有點殺雞用牛刀,維護兩套系統的成本也不低。
如果只能選一個,我的個人建議是:新手、重視體驗、需要加密 DNS 與家長控制的人,選 AdGuard Home;喜歡折騰、重視社群、想深入學習 DNS 運作的人,選 Pi-hole。兩者都免費、都開源、都能把家裡的廣告清得乾乾淨淨。真正的關鍵不是你選了哪一個,而是你願不願意花一個下午把它架起來。
一旦你體驗過「全家所有裝置自動擋廣告」的感覺,你大概就回不去了。祝各位搭建順利,也歡迎在雅寶社區 · 頂客論壇分享你的部署心得與踩坑經驗。