AdGuard Home 是一套免費、開源(GPL v3)、GitHub 36,942 星的網路層 DNS 廣告阻擋伺服器:只要在一台 Raspberry Pi 或 VPS 上用 Docker 跑起來、把路由器的 DNS 指過去,家中所有裝置——手機、平板、智慧電視、遊戲機、連網家電——就一起擋掉廣告與追蹤網域,完全不需要在每台裝置另外裝外掛。 它的最大優勢是原生內建 DoH/DoT/DoQ 加密,這點 Pi-hole 得另外掛 cloudflared 或 Unbound 才做得到。
這篇教學會依序講完:為什麼要在 DNS 層擋廣告、AdGuard Home 與 Pi-hole v6/NextDNS 的完整比較、硬體需求與實測效能、Docker Compose 實戰部署、路由器與 DHCP 設定、加密 DNS 設定、以及五個新手一定會踩到的陷阱。
為什麼要在 DNS 層擋廣告?
一般的廣告阻擋外掛(uBlock Origin、AdGuard 瀏覽器擴充)只保護「瀏覽器」。但你家裡真正在偷偷連線的,往往是:
- 智慧電視的開機廣告與觀看紀錄回傳
- 手機 App 裡塞的廣告 SDK
- 遊戲機、掃地機器人、連網家電的背景 telemetry
- 作業系統本身的遙測流量
DNS 阻擋的作法是在解析階段就把追蹤網域指向黑洞(sinkhole),裝置根本連不上廣告伺服器,也就不會下載廣告。它的好處是一次設定、全網生效,包含那些你根本無法安裝外掛的裝置。
flowchart TD
A["家中裝置發出請求<br/>例如 App 想連 ads.example.com"] --> B{"路由器 DNS<br/>指向誰?"}
B -->|預設:電信商或 8.8.8.8| C["正常解析<br/>廣告照樣下載"]
B -->|改成 AdGuard Home 的 IP| D["AdGuard Home 查詢封鎖清單"]
D -->|命中黑名單| E["回傳 0.0.0.0<br/>廣告連不上,直接消失"]
D -->|不在名單內| F["轉發給上游 DNS<br/>並使用本地快取加速"]
F --> G["回傳真實 IP<br/>正常上網"]AdGuard Home vs Pi-hole v6 vs NextDNS 完整比較
這三個是最常被拿來比較的組合,但其實定位不同:AdGuard Home 與 Pi-hole 是自架,NextDNS 是雲端代管 SaaS。
| 比較項目 | AdGuard Home | Pi-hole v6 | NextDNS |
|---|---|---|---|
| 開發者 | Adguard Software Ltd. | Pi-hole LLC | NextDNS Inc. |
| 開源授權 | GPL v3(完全開源) | EUPL(完全開源) | 閉源 SaaS |
| 部署型態 | 自架 | 自架 | 雲端代管 |
| 支援平台 | Linux(x86_64/arm64/armv7)、Docker、macOS、Windows、FreeBSD、GL.iNet 路由器 | Linux(Debian/Ubuntu/Arch)、Raspberry Pi OS、Docker(Alpine 底層) | 全平台(iOS、Android、Windows、macOS、Linux、路由器、瀏覽器 DoH) |
| 內建 Web UI | 有(Go 二進位檔內建,初始化 Port 3000) | 有(v6 起由 pihole-FTL 內建,移除 lighttpd/PHP) | 有(雲端儀表板 my.nextdns.io) |
| 內建 DoH/DoT/DoQ | 原生支援 ✅(含 HTTP/3、DNSCrypt) | 不支援 ❌(需另掛 cloudflared/Unbound) | 雲端原生支援 ✅ |
| 內建 DHCP 伺服器 | 有 ✅(DHCPv4/DHCPv6) | 有 ✅(內建 dnsmasq) | 無 ❌(純 DNS 過濾) |
| 每客戶端設定 | 原生直覺介面(可獨立指定上游 DNS、規則、SafeSearch、服務封鎖) | 群組管理(功能強但介面較複雜) | 多設定檔(用不同 DoH/DoT URL 區分裝置) |
| 家長控制 | 內建 SafeSearch(Google/YouTube/Bing)+ 200+ 熱門服務一鍵封鎖 | 無內建 GUI 開關(需靠第三方清單) | 內建完整類別封鎖(成人、賭博、特定 App 開關) |
| 安裝難度 | 簡單 | 中等 | 極簡單 |
| 價格 | $0 | $0 | Freemium(免費版 30 萬次查詢/月,Pro $1.99/月) |
硬體需求與實測效能
自架派的共同優點是硬體門檻極低。實測環境(Raspberry Pi 4 4GB、18 台裝置、10,000+ 阻擋網域)下,兩套自架工具表現非常接近:
| 指標 | AdGuard Home | Pi-hole v6 | NextDNS |
|---|---|---|---|
| 最低硬體 | Raspberry Pi Zero 2 W(建議 Pi 4 2GB 以上) | Raspberry Pi Zero 2 W(建議 Pi 4 2GB 以上) | 不需本地硬體 |
| 閒置記憶體 | 約 30–80 MB(純 DNS 約 55 MB,開 DoH 約 65 MB) | 約 50–120 MB(純 DNS 約 85 MB,搭 Unbound 約 130 MB) | 0 MB |
| 閒置 CPU | < 1% | < 1% | 0% |
| 最大 QPS | 10,000+ QPS | 10,000+ QPS | 雲端擴展 |
| 延遲(快取命中) | 0.2–1 ms | 0.2–1 ms | 約 12–15 ms(受網路往返影響) |
這張表最值得看的一行是延遲。 自架 DNS 在本地快取命中時是 0.2–1 毫秒,NextDNS 因為要走網際網路到最近節點,大約 12–15 毫秒。日常上網感受不一定明顯,但如果你家有大量裝置或在意極致反應速度,本地自架仍然有優勢。
NextDNS 免費版限制與價格
| 方案 | 價格 | 關鍵限制 |
|---|---|---|
| Free | $0/月 | 每月 30 萬次查詢上限。超過不會斷網,但會降級成「不過濾、不記錄」的普通 DNS,直到下個月歸零 |
| Pro | $1.99/月或 $19.90/年(年繳省約 17%) | 查詢數無上限 |
| Business | $19.90/月或 $199/年 | 每 50 名員工為一計費單位,含 Email 技術支援 |
| Education | $19.90/月或 $199/年 | 每 250 名學生為一計費單位 |
免費版與付費版都是裝置數無限制、Profiles 無限制——這點對「一個人管全家裝置」其實很夠用。
NextDNS 最大的價值在跨網域防護:手機離家改用 4G/5G 或外面的 Wi-Fi 時,只要裝置設的是 NextDNS 的 DoH/DoT 位址,封鎖與家長控制依然生效。這是自架方案天生做不到的事(除非回家走 VPN)。
Pi-hole v6 在 2026 年改了什麼?
Pi-hole 在 v6 做了相當大幅度的重構,如果你印象還停留在「Pi-hole 要裝 lighttpd + PHP」,那是舊版本的事了:
- 廢除 lighttpd 與 PHP:Web Server 與 REST API 直接嵌入
pihole-FTL單一 C/C++ 二進位檔(內建 Lua 引擎),系統依賴與資源消耗大幅下降。 - 管理介面原生支援 HTTPS:可直接設定自訂憑證或使用自動生成憑證。
- 設定檔統一:過去的多個
.conf全部整合進單一/etc/pihole/pihole.toml。 - 原生 REST API 與伺服器端分頁:Query Log 在大量日誌下載入速度明顯提升。
- Docker 映像檔瘦身:基底從 Debian 換成 Alpine Linux,映像檔從 113 MB 降到 38 MB。
- 支援訂閱白名單(Subscribed Allowlists):白名單也能像黑名單一樣定期自動同步。
該選哪一個?
| 你的情況 | 建議 |
|---|---|
| 想開箱即用、要原生加密 DNS、家中有小孩要一鍵封鎖特定 App/影音平台 | AdGuard Home |
| 你是 Homelab 玩家、偏好模組化(搭 Unbound 做完全不依賴商業 DNS 的遞迴解析)、要看極深度 Query 日誌 | Pi-hole v6 |
| 不想維護硬體、常在外面用行動網路、甚至要遠端幫家人的手機加防護 | NextDNS |
AdGuard Home 最新版本與 2026 年亮點
撰寫當下的穩定版是 v0.107.79(2026-08-18 發布),新一代架構的 v0.108 系列仍在 Beta。0.107.x 這條線有幾個實用更新:
- Optimistic DNS Caching(樂觀快取):即使快取紀錄已過期,也會先立刻回傳過期結果給客戶端,同時在背景非同步更新上游,明顯降低使用者感受到的延遲。
- 上游負載平衡模式:新增
upstream_mode設定,可選load_balance(加權隨機)、parallel(平行同時查詢)、fastest_addr(回傳最快回應的 IP)。 - DoH 反向代理優化:新增
http.doh路線設定與insecure_enabled選項,讓 Nginx/Traefik 等反向代理在 HTTP 下更容易封裝與轉發 DoH 流量。 - 一鍵封鎖服務擴充到 200+ 種(TikTok、YouTube、Discord 等),並支援每週七天的定時阻擋時間表。
- 客戶端名稱解析來源可控制:可自行決定是否從 ARP 表、rDNS、DHCP 租約或 hosts 檔讀取裝置名稱。
實戰部署:Docker Compose
AdGuard Home 是單一 Go 二進位檔、無外部依賴,用 Docker 部署是最乾淨的方式。
# docker-compose.yml
services:
adguardhome:
container_name: adguardhome
image: adguard/adguardhome:latest
restart: unless-stopped
# 重要:用 host 網路才能看到每台裝置的真實 IP(見下方陷阱 1)
network_mode: "host"
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
如果你不想用 host 網路,改用 ports 映射也行,但要記得這個代價:
ports:
- "53:53/tcp" # DNS over TCP
- "53:53/udp" # DNS over UDP
- "3000:3000/tcp" # 首次初始化精靈
- "8080:80/tcp" # Web 管理介面(初始化完成後)
- "443:443/tcp" # DoH(選用)
- "853:853/tcp" # DoT(選用)
啟動:
docker compose up -d
docker compose logs -f adguardhome
不想用 Docker?Linux 一鍵安裝
curl -s -S -L https://static.adguard.com/adguardhome/release/AdGuardHome_linux_arm64.tar.gz | tar xvz
cd AdGuardHome
sudo ./AdGuardHome -s install
(arm64 請依你的架構換成 amd64 或 armv7。-s install 會直接註冊成系統服務。)
初始化精靈
- 瀏覽器打開
http://<伺服器IP>:3000。 - 設定 Web 管理介面監聽 Port(避免跟本機 80 埠衝突,建議改 3000 或 8080)。
- 設定 DNS 服務監聽介面(Port 53)。
- 建立管理員帳號密碼,完成。
設定路由器:讓全網都走 AdGuard Home
| 方法 | 作法 | 適用情況 |
|---|---|---|
| 方法 1(推薦) | 進入路由器後台的 LAN/DHCP 設定,把「主 DNS 伺服器」填上 AdGuard Home 的靜態 IP | 路由器支援自訂 DNS(多數現代路由器都可) |
| 方法 2 | 關閉路由器的 DHCP,改用 AdGuard Home 的內建 DHCP 伺服器自動指派 | 路由器不給改 DNS 時 |
提醒:AdGuard Home 的 IP 一定要設成靜態 IP(或在路由器綁定 MAC),否則重開機換 IP,全家會直接斷網。
啟用 DoH/DoT 加密(自架派的關鍵優勢)
Pi-hole 要加密上游得另外掛 proxy,AdGuard Home 則是內建:
- 進入後台 「設定」→「加密設定(Encryption Settings)」。
- 勾選啟用加密,填入你的伺服器域名(Server Name)。
- 指定憑證路徑(
certificate_path)與私鑰路徑(private_key_path)。 - 啟用 Port 443(DoH)與 Port 853(DoT)。
憑證可以用 Let’s Encrypt 簽發——如果你還不熟憑證自動化,可以參考本站的 Caddy 完整教學,Caddy 會自動申請與續期憑證,把 AdGuard Home 放在它後面做反向代理即可。
五個一定會踩到的陷阱
陷阱 1:Docker 用 Bridge 網路,所有裝置 IP 都變成 172.x.x.x
這是最常見的問題。用預設 bridge 網路時,AdGuard Home 看到的客戶端請求 IP 全部是 Docker 網關 IP,導致你無法針對個別裝置套用不同規則。
解法:設定 network_mode: "host",或改用 Macvlan 讓容器直接取得實體 LAN IP。如果你只想「全家套同一套規則」那沒差,但只要想「小孩的平板多擋一點」,就必須解決這個。
陷阱 2:DNS Rewrites 不能指定 Port
AdGuard Home 的 DNS Rewrites 只能把網域解析到某個 IP(例如 nas.local → 192.168.1.100),無法在 DNS 層級指定連接埠(不能寫 :8080)。
解法:由反向代理(Nginx Proxy Manager、Traefik、Caddy)監聽 80/443,再轉發到內部服務的真實 Port。
陷阱 3:Port 53 被 systemd-resolved 佔用
Ubuntu/Debian 預設會跑 systemd-resolved,佔住 53 埠,AdGuard Home 會起不來。排解步驟:
# 1. 關掉 systemd-resolved 的 DNS stub listener
sudo sed -i 's/#DNSStubListener=yes/DNSStubListener=no/' /etc/systemd/resolved.conf
# 2. 重啟服務
sudo systemctl restart systemd-resolved
# 3. 確認 53 埠已釋放(沒有輸出代表成功)
sudo ss -tulpn | grep :53
陷阱 4:為什麼 YouTube、Twitch、Spotify 的廣告還是擋不掉?
因為同域名廣告:這些平台的廣告與影片內容由同一個 CDN/網域送出,DNS 看不出請求內容的差別。你一封鎖廣告域名,影片就跟著不能播。這類廣告只能靠瀏覽器端外掛(uBlock Origin)處理,DNS 層做不到,這不是設定錯誤。
陷阱 5:裝置硬編碼 DNS 或自帶 DoH,直接繞過你
- 硬編碼 DNS:不少智慧電視、Chromecast、手機 App 直接在程式裡寫死
8.8.8.8或1.1.1.1,根本不甩你路由器的設定。解法是在路由器防火牆把 Port 53 做重定向(DNAT),強制抓回 AdGuard Home。 - App 內建 DoH/QUIC:部分 App 自己帶加密 DNS,繞過系統設定。
- Apple Private Relay:Safari 會用 Apple 的加密 DoH 繞過區域網路 DNS。AdGuard Home 內建機制會回應特定領域查詢來阻擋 Private Relay,迫使 Apple 裝置降級回使用 LAN DNS。
- VPN 全隧道:開全隧道 VPN 時所有 DNS 會被 VPN 接管;要用 AdGuard Home 就得改設 Split-Tunneling(分流),手動把 DNS 指到 AdGuard Home。
推薦的封鎖清單
AdGuard Home 同時支援 Adblock 格式規則與標準 hosts 格式,以下三份是社群最常推薦的組合,可設定定時自動同步更新:
| 清單 | 特性 |
|---|---|
| HaGeZi Multi PRO | 平衡性極佳,誤擋率低,適合日常使用 |
| AdGuard DNS Filter | 官方維護,與 AdGuard Home 整合最順 |
| OISD | 以「幾乎不誤擋」為設計目標,適合怕擋壞東西的人 |
自架之後,把它接進你的監控體系
AdGuard Home 上線後就變成全家網路的關鍵路徑——它掛掉,全家斷網。建議搭配以下自架工具一起用:
- Uptime Kuma 完整教學:把 AdGuard Home 的 Web 介面加入監控,掛掉立刻收到通知
- Tailscale 完整教學:讓你外出時也能安全連回家裡的服務
- Caddy 完整教學:自動 HTTPS 反向代理,把 DoH 端點安全暴露出去
- Proxmox VE 9 完整教學:用 LXC 容器跑 AdGuard Home,資源佔用比 VM 更低
- Docker 完整教學:不熟 Docker Compose 的話先看這篇
- 自架 S3 物件儲存完整教學:順手把 AdGuard Home 的設定備份起來
常見問題(FAQ)
Q:AdGuard Home 跟 Pi-hole 哪個比較好? 沒有絕對答案。要原生 DoH/DoT、現代化 UI、一鍵封鎖 App 選 AdGuard Home;要龐大社群、模組化架構(搭 Unbound 做遞迴解析)、極深度日誌分析選 Pi-hole v6。兩者都免費,硬體需求也幾乎一樣。
Q:一定要買 Raspberry Pi 嗎? 不用。任何能跑 Linux 的裝置都可以:舊筆電、舊迷你主機、NAS 上的 Docker、VPS,甚至是 Raspberry Pi Zero 2 W 這種低階板子(閒置記憶體約 30–80 MB)。
Q:手機在 4G 行動網路下也能擋廣告嗎? 自架方案要在外面生效,得靠 Tailscale 之類的 VPN 回連,或改用 NextDNS(把裝置的 DoH 位址設成 NextDNS)。這是 NextDNS 唯一明顯贏過自架的地方。
Q:改 DNS 會不會讓網路變慢? 不會,而且通常更快。本地快取命中時只要 0.2–1 毫秒,比走電信商 DNS 更快;同時少下載一堆廣告,頁面反而更輕。
小結
AdGuard Home 是自架清單裡「投入產出比最高」的項目之一:一台低階裝置、一次 Docker 部署、改一個路由器的 DNS 設定,全家所有裝置(包括那些裝不了外掛的電視與家電)就一起受益。它原生支援 DoH/DoT 加密、內建 DHCP 與 200+ 服務一鍵封鎖,是 2026 年要入門網路層廣告阻擋最省事的一條路。
如果你還在挑自架服務的第一個專案,可以搭配本站的 Awesome Selfhosted 自架服務指南一起看,那裡整理了更多值得自架的開源專案。
參考來源
- AdGuard Home 官方 GitHub(AdguardTeam/AdGuardHome)
- AdGuard Home GitHub Releases(v0.107.79)
- AdGuard Home 官方文件與 Wiki
- Pi-hole vs AdGuard Home vs NextDNS — HomeTechOps
- AdGuard Home vs Pi-hole 2026: Best DNS Blocker for a Pi? — raspberry.tips
- AdGuard Home vs Pi-hole (2026): Which DNS Is Better? — Blockify
