架設自己的擋廣告 DNS – AdGuard Home

前言廢話

市面上的公共 DNS 不勝枚舉,簡單舉例幾個大概就是 Cloudflare DNS(1.1.1.1)、Google DNS(8.8.8.8)、Quad9(9.9.9.9),若是想要阻擋廣告,也有 AdGuard DNS(94.140.14.14)。但是這些都是由第三方所控制的,你沒辦法隨著自己的喜好去微調規則,只能乖乖用。

那有沒有可以自架一個自己可以控制的 DNS 呢?當然有,今天就來介紹我使用已久的 AdGuard Home。

簡單介紹

AdGuard Home 是由一間俄羅斯知名公司 AdGuard 所推出的開源軟體,相信不少人都有聽過。但大部分人對他熟知的應該是他的瀏覽器插件,不過瀏覽器插件是阻擋網站上的元件或要求,而 AdGuard Home 則是直接阻止根源的 DNS。

看不懂這是什麼意思?可以去複習我的另一篇文章哦!

開始使用

這次安裝的過程會 Linux 上執行,而且我也不推薦使用 Windows 當作 DNS 伺服器,就…你懂的。

首先先更新伺服器吧!

sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade

使用 curl 執行安裝

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

當你看到這幕時,代表他安裝好囉!管理介面的預設 Port 為 3000,你可以直接使用 IP位址:3000 來訪問 AdGuard Home。下面也告訴你的一些如何重新啟動或移除等等的操作。

001.jpg

當你打開網站看到底下這個畫面,就代表下載安裝是成功的,接著就跟著他的腳步設定下去。

002.jpg

接下來這一步是選擇 AdGuard Home 要監聽的網路介面卡,基本上是全部都可以監聽啦,這邊就不動下一步就好。你可能會在這個步驟出問題,請參考 #常見問題 章節。

003.jpg

設定管理員帳號密碼。

004.jpg

這一步就是告訴你如何將你的裝置們連上這個 DNS 伺服器,你可以參考設定

005.jpg

接著就完成囉!

006.jpg

設定環境

在完成設定登入後,映入眼簾的就是儀表板啦,你可以在這裡快速的看到一些統計資料。

007.jpg

一般設定

一般 > 一般設定 裡面,你可以在這裡管理是否要啟動過濾、安全搜尋,紀錄與統計資料也是在這邊設定。

008.jpg

DNS 設定

一般 > DNS 設定 裡面,你可以設定你的 DNS 上游,就是 AdGuard Home 要到哪裡查詢 DNS,你也可以選擇模式:有 負載平衡並行的請求最快的 IP 位址 可選。如果你不知道要選擇哪些上游,可以參考 這篇文章

009.jpg

在 DNS 設定中,你也可以啟動用戶端查詢的速率限制、啟動 EDNS、禁止 IPv6 解析等。

010.jpg

另外,你也可以決定 DNS 的快取時間,來加快部分 DNS 快取存留太久的煩惱。

011.jpg

加密設定

一般 > 加密設定 裡,你可以設定 DoT 及 DoH。沒錯,AdGuard Home 是支援這兩個先進技術的,你可以在這邊配置哦!

012.jpg

DNS 封鎖名單

前面我們提到了 AdGuard Home 可以針對特定網域封鎖,就是在這邊管理的。

013.jpg

這邊,我也推薦幾個我所使用的:

名稱 網址
AdGuard DNS filter 連結
AdAway Default Blocklist 連結
Steven Black’s List 連結
1Hosts (Lite) 連結
The NoTracking blocklist 連結

DNS 允許清單

如果你有常用的網站被寫在封鎖清單導致你沒辦法訪問,那你可以在 過濾器 > DNS 允許清單 排除他。

014.jpg

DNS 改寫

你有特別的網域,希望 AdGuard Home 在解析的時候改寫?在 過濾器 > DNS 改寫 可以做設定哦!像我們知道,Cloudflare 免費用戶是無法直接使用 TPE 節點的,那我們就可以把已知網站在這裡改寫,來強制使用 TPE 節點。

015.jpg

而我介紹的這些,是比較常用的功能。但他還有更多玩法等著你來挖掘!

常見問題

☆ 我出現了 validating ports: listen tcp 0.0.0.0:53: bind: address already in use,該怎麼辦?

016.jpg

出現這個,很有可能你是使用 Ubuntu 的使用者。原因是因為 Ubuntu 有內建一個軟體叫 systemd-resolved 是用來解析 DNS 用的。要想解決這個問題,使用以下指令將其停用就好囉!

sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved

結語

這就是這次 AdGuard Home 的全部內容啦,他非常適合想要自己控制 DNS 伺服器的人使用。而我自己非常喜歡他的 DNS 改寫以及 DoH 功能,並將 DoH 分享給朋友們一起使用,讓網路世界使用起來更加隱私!