前言#
最近可能是買了國內伺服器放著沒用,倒不如將其利用起來搭建一個 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
如圖就是安裝完成了,進行下一步
配置#
打開瀏覽器訪問 http://<伺服器 IP>:3000
點擊開始配置,網頁管理端口可以寫自己喜歡的端口
哎呀這是什麼情況,別急讓我們來找找原因(沒有此問題直接跳轉到下一步)
問題排查
輸入 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:~#
刷新一下,就沒問題了
點下一步,設置管理員賬號和密碼
下一步
然後這樣就基本完成了,點擊 打開儀表盤
,登錄
然後依次點擊 設置 → DNS 設置 → 上游 DNS 伺服器
輸入你喜歡的 DNS(支持純 DNS,DoH,DoT 等)
然後添加 Bootstrap 伺服器,這裡請務必填寫你當地最受歡迎的 DNS,否則無法解析上游 DNS 伺服器的域名(如果有的話)
還可以加後備(上游掛了就會用這個)
這裡無效打碼了 TAT,不過沒關係教程用完的伺服器我是隨手刪了的
然後測試一下,沒問題點保存即可
然後就算搭建完成了,此時將你家中的路由器(DHCP 設置)/ 設備的 DNS 設置為你的伺服器 IP 就好啦
廣告過濾規則什麼的還請自行網上搜索啦~
FAQ#
- Q:我沒有相關資質搭建 DNS 伺服器,但是我只是自己用怎麼辦
- A:這裡可以耍個小聰明,在伺服器安全組設置裡把 53 端口僅對自己家的 C 段開放即可(不知道會不會出事,反正博主用了快一個月了沒事),你要還是不放心可以順手把服務商的 Agent 卸載了,網上一搜各大廠應該都有
- 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