AdGuard Home使用體驗

Aicnal發表於2024-07-30

AdGuard Home使用體驗

AdGuard Home is a network-wide software for blocking ads and tracking. After you set it up, it'll cover ALL your home devices, and you don't need any client-side software for that.

"AdGuard Home 是一個全域範圍的,用來阻擋廣告和追蹤的軟體。當你安裝完成之後,它將覆蓋你家裡所有的裝置,你從此不需要任何客戶端軟體來阻擋廣告"

前言

說起AdGuard Home你也許會比較陌生,但如果說起AdGuard那你大機率使用過它的外掛。

AdGuard是全球最先進的廣告攔截器”,這句話如果單領出來確實有點廣告法,但的確對得起AdGuard的強大功能,我最常見使用的是AdGurad的瀏覽器外掛,這個外掛能攔截絕大數的瀏覽器廣告,但對於一些基於無法安裝外掛的情況,比如說微信小程式裡面的廣告,這種方法就無濟於事了

因此AdGurad推出了AdGurad Home,從根源上解決了廣告的問題

目前該專案已經開源到了GitHub:地址

技術解析

Free and open source, powerful network-wide ads & trackers blocking DNS server.

"免費和開源、強大的全域網路廣告與追蹤器阻擋DNS伺服器"

AdGuard Home的本質其實是一個DNS快取伺服器,它透過從上游DNS伺服器中獲取DNS解析結果,與本地的DNS黑名單白名單進行匹配,從而對屬於廣告或者其他你不願意看到的內容的DNS請求進行過濾,如果裝置請求的域名在黑名單中,AdGuard Home則不會返回DNS解析結果,從而達到遮蔽廣告追蹤器的功能。

如果是黑名單中的域名,最終返回客戶端的請求結果會是:

響應程式碼
NOERROR
規則
||data.kuiniuca.com^
AdGuard DNS filter
響應
A: 0.0.0.0 (ttl=10)
響應
AAAA: :: (ttl=10)

安裝

官方的文件提供的很詳細的安裝教程,在這裡比較推薦的部署方法是採用Docker:

docker run --name adguardhome\
    --restart unless-stopped\
    -v /my/own/workdir:/opt/adguardhome/work\
    -v /my/own/confdir:/opt/adguardhome/conf\
    -p 53:53/tcp -p 53:53/udp\
    -p 67:67/udp -p 68:68/udp\
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
    -p 853:853/tcp\
    -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    -p 5443:5443/tcp -p 5443:5443/udp\
    -d adguard/adguardhome

為了避免DNS快取資料和配置檔案的丟失,你應該將/opt/adguardhome/work/opt/adguardhome/conf對映出來做持久卷處理。你也不必擔心該資料的龐大體積,DNS資料本身很小

liueic@liueic-ThinkCentre-M910x:~/adguard$ ls -lh
總用量 8.0K
drwxr-xr-x 2 root root 4.0K 7月  29 14:45 confdir
drwxr-xr-x 3 root root 4.0K 7月  27 16:29 workdir

其中AdGuard Home還提供了HDCPTLSDOH等諸多功能,如果你部署在區域網而且已經有主路由,只想將AdGuard Home當作DNS伺服器,那你可以只開放533000,並將80對映為其他埠作為WebUI的埠

安裝完成進入http://IP:3000進行設定

使用

前面說了AdGuard Home,主要是作為DNS快取伺服器使用,因此選取未被汙染的上游DNS伺服器顯得尤為重要,在這裡我推薦幾個我使用比較多的DNS伺服器:

https://dns10.quad9.net/dns-query	# AdGuard Home官方維護
https://dns.google/dns-query	# Google DoH伺服器
https://1dot1dot1dot1.cloudflare-dns.com/	# CloudFlare DoH伺服器
dns.google	# Google DoT伺服器
cloudflare-dns.com # CloudFlare DoT伺服器
dns.alidns.com	# 阿里雲 DoT伺服器
dot.pub	# DNSpub DoT伺服器
https://dns.alidns.com/dns-query # 阿里雲 DoH伺服器
https://223.5.5.5/dns-query	# 阿里雲 DoH伺服器
https://223.6.6.6/dns-query	# 阿里雲 DoH伺服器

在這裡我選取了較多的上游伺服器,其中需要注意的是阿里雲公共DNS對於請求數量進行了限制(QPS 20),而騰訊的公共DNS有汙染的傳言,所以並不完全可靠

在這裡我推薦你使用並行請求,加上樂觀快取,這樣的話可以在儘可能保證請求質量的基礎上加快本地的DNS請求速度

其實你沒必要擔心因為樂觀快取的存在而影響DNS解析的正確程度,因為你訪問的大多數網址的DNS解析結果一般不會發生較大的變化,相反由於樂觀快取的本地快取,整個DNS請求的效率會很高,會大大改善本地的網路連線狀況:

DNS 黑名單

AdGuard HomeDNS 黑名單是整個的核心,它決定了最終對抗廣告和追蹤器的質量,在這裡我推薦一個效果比較好,誤傷比較小的DNS黑名單,以下加速連結為CDN加速後的連結:

AdGuard DNS filter:原始連結 | 加速連結

AdAway Default Blocklist:原始連結 | 加速連結

AdGuard Base filter:原始連結 | 加速連結

AdGuard Chinese filter:原始連結 | 加速連結

CJX's Annoyance List:原始連結 | 加速連結

乘風MV:原始連結 | 加速連結

乘風Rules:原始連結 | 加速連結

jiekouAD: 原始連結 | 加速連結

EasyList:原始連結 | 加速連結

EasyList China:原始連結 | 加速連結

EasyPrivacy:原始連結 | 加速連結

BlueSkyXN:原始連結 | 加速連結

總體來說效果還是很不錯的,一些常見的廣告都可以過濾,你還可以新增一些特殊的規則,比如說針對“電子書”、“電視劇”等等

總結

總體來說,使用體驗還是很不錯的,尤其是本地有DNS快取之後整體的解析速度很快,而且也不會存在因為解析錯誤而導致無法訪問的情況。

如果你想要了解更多的話,不妨看看我的小站:小樹

相關文章