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


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。