banner
libxcnya.so

libxcnya.so

Nothing...
telegram
twitter
github
email

搭建屬於自己的 ADGuard Home DNS

前言#

最近可能是買了國內伺服器放著沒用,倒不如將其利用起來搭建一個 ADGuard DNS 來給國內可憐而又可悲的 APP 去去廣告

需求#

  • 伺服器一台(最好與你在同一個國家,請注意當地法律)
  • 伺服器支持開放 53 端口
  • 腦子一個
  • 手一雙

安裝#

一鍵腳本:

curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh

如果是中國內地伺服器可使用鏡像源

curl -sSL https://mirror.ghproxy.com/https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh

1

如圖就是安裝完成了,進行下一步

配置#

打開瀏覽器訪問 http://<伺服器 IP>:3000

2

點擊開始配置,網頁管理端口可以寫自己喜歡的端口

3

哎呀這是什麼情況,別急讓我們來找找原因(沒有此問題直接跳轉到下一步)

問題排查

輸入 lsof -i:53

root@VM-0-9-ubuntu:~# lsof -i:53
COMMAND   PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 698 systemd-resolve   12u  IPv4  10013      0t0  UDP 127.0.0.53:domain
systemd-r 698 systemd-resolve   13u  IPv4  10014      0t0  TCP 127.0.0.53:domain (LISTEN)
named     725            bind   23u  IPv4  11889      0t0  UDP localhost:domain
named     725            bind   24u  IPv4  11898      0t0  UDP localhost:domain
named     725            bind   26u  IPv4  13187      0t0  TCP localhost:domain (LISTEN)
named     725            bind   27u  IPv4  13187      0t0  TCP localhost:domain (LISTEN)
named     725            bind   28u  IPv4  13187      0t0  TCP localhost:domain (LISTEN)
named     725            bind   29u  IPv4  11901      0t0  UDP 10.0.16.17:domain
named     725            bind   30u  IPv4  11902      0t0  UDP 10.0.16.17:domain
named     725            bind   32u  IPv4  11907      0t0  TCP 10.0.16.17:domain (LISTEN)
named     725            bind   33u  IPv4  11907      0t0  TCP 10.0.16.17:domain (LISTEN)
named     725            bind   34u  IPv4  11907      0t0  TCP 10.0.16.17:domain (LISTEN)
named     725            bind   35u  IPv6  11908      0t0  UDP ip6-localhost:domain
named     725            bind   36u  IPv6  11912      0t0  UDP ip6-localhost:domain
named     725            bind   37u  IPv6  11913      0t0  TCP ip6-localhost:domain (LISTEN)
named     725            bind   38u  IPv6  11913      0t0  TCP ip6-localhost:domain (LISTEN)
named     725            bind   39u  IPv6  11913      0t0  TCP ip6-localhost:domain (LISTEN)
named     725            bind   40u  IPv6  11914      0t0  UDP [fe80::5054:ff:fe5e:b356]:domain
named     725            bind   41u  IPv6  11921      0t0  UDP [fe80::5054:ff:fe5e:b356]:domain
named     725            bind   42u  IPv6  11922      0t0  TCP [fe80::5054:ff:fe5e:b356]:domain (LISTEN)
named     725            bind   43u  IPv6  11922      0t0  TCP [fe80::5054:ff:fe5e:b356]:domain (LISTEN)
named     725            bind   44u  IPv6  11922      0t0  TCP [fe80::5054:ff:fe5e:b356]:domain (LISTEN)

可以看到有兩個進程佔用了 53 端口,我們先來解決 named

systemctl stop bind9
systemctl disable bind9

然後再 lsof 一遍

root@VM-0-9-ubuntu:~# lsof -i:53
COMMAND   PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 698 systemd-resolve   12u  IPv4  10013      0t0  UDP 127.0.0.53:domain
systemd-r 698 systemd-resolve   13u  IPv4  10014      0t0  TCP 127.0.0.53:domain (LISTEN)

可以看到 named 已經沒了~~(如果喜歡還可以直接 apt purge bind9)~~
然後來解決 systemd-r

mkdir -p /etc/systemd/resolved.conf.d
touch /etc/systemd/resolved.conf.d/adguardhome.conf
mv /etc/resolv.conf /etc/resolv.conf.backup
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

然後用你喜歡的編輯器往 /etc/systemd/resolved.conf.d/adguardhome.conf 中寫入

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

然後輸入以下命令

systemctl restart systemd-resolved

然後大概就沒有東西佔用 53 端口了

root@VM-0-9-ubuntu:~# lsof -i:53
root@VM-0-9-ubuntu:~#

4

刷新一下,就沒問題了
點下一步,設置管理員賬號和密碼

5

6

下一步

7

然後這樣就基本完成了,點擊 打開儀表盤,登錄

8

然後依次點擊 設置 → DNS 設置 → 上游 DNS 伺服器

9

輸入你喜歡的 DNS(支持純 DNS,DoH,DoT 等)

13

然後添加 Bootstrap 伺服器,這裡請務必填寫你當地最受歡迎的 DNS,否則無法解析上游 DNS 伺服器的域名(如果有的話)

10

還可以加後備(上游掛了就會用這個)

11

這裡無效打碼了 TAT,不過沒關係教程用完的伺服器我是隨手刪了的
然後測試一下,沒問題點保存即可

14

然後就算搭建完成了,此時將你家中的路由器(DHCP 設置)/ 設備的 DNS 設置為你的伺服器 IP 就好啦
廣告過濾規則什麼的還請自行網上搜索啦~

FAQ#

  • Q:我沒有相關資質搭建 DNS 伺服器,但是我只是自己用怎麼辦
  • A:這裡可以耍個小聰明,在伺服器安全組設置裡把 53 端口僅對自己家的 C 段開放即可(不知道會不會出事,反正博主用了快一個月了沒事),你要還是不放心可以順手把服務商的 Agent 卸載了,網上一搜各大廠應該都有

12

  • Q:我搭建完 DNS 後伺服器沒法用服務商的內網鏡像源了怎麼辦
  • A:在 /etc/resolv.conf 中添加你服務商的內網 DNS 即可
    我這裡用騰訊雲舉例,如果你是正常購買的伺服器 / 輕量雲伺服器且購買時自己沒有修改網絡設置一般都是 VPC 網絡,將 /etc/resolv.conf 清空後輸入以下內容保存即可
nameserver 183.60.83.19
nameserver 183.60.82.98

其他廠 / 其他類型的網上一搜應該就有

結尾#

如果你覺得這篇文章對你有幫助,歡迎轉發給有需要的朋友,如果能贊助一下博主貓貓就更好了喵~
See you Next Time~

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://blog.nekorua.com/posts/build/97.html


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。