前言#
最近可能是买了国内服务器放着没用,倒不如将其利用起来搭建一个 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