用AdGuard Home搭建一个无广告和跟踪的公共DNS

简单点说AdGuard Home就是自建一个DNS服务,如Google的公共DNS8.8.8.8,和DNSmasq一样AdGuard Home是开源的,可以自行搭建安装后在客户端配置使用。
AdGuard Home使用Golang开发,编译好了各大平台的二进制文件,因此安装非常简单,这里以CentOS 7为例,其它系统可参考官方帮助文档。
最近我新装了一台j3455的低功耗平台,于是家里dns的问题就有了一个更好的解决方案。之前的方案是在国内主机上搭建overture然后用dns,但是貌似只要出了小区,就被污染了。于是我就想在家里直接通过doh来解决这个问题。毕竟doh基本不可能污染。AdGuard Home给了我一个解决方案(而且还可以去广告)。
CentOS 7 X64安装
AdGuard Home二进制文件位于https://github.com/AdguardTeam/AdGuardHome/releases 可根据自己的平台下载最新版本。CentOS 7安装方法如下:

#下载AdGuard Home
wget http://soft.xiaoz.org/linux/AdGuardHome_v0.93_linux_amd64.tar.gz
#解压
tar -zxvf AdGuardHome_v0.93_linux_amd64.tar.gz
#进入AdGuardHome目录
cd AdGuardHome
#放行3000端口(AdGuardHome初始化需要使用)
#firewalld放行3000端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
#iptables放行3000端口
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
#启动AdGuard Home
./AdGuardHome

运行AdGuardHome后,会提示打开http://IP:3000端口进行初始化
然后进行初始化

设置上游DNS
AdGuard Home默认使用Cloudflare DNS作为上游服务器,如果您服务器在国内可能请求上游DNS延迟比较高,在后台 - 设定 - 可以设置为国内的DNS,https://sdns.233py.com/dns-query

额外设置
为了方便管理,可以继续输入命令./AdGuardHome -s install安装为服务,然后就可以使用下面的命令来进行管理了。

#启动
systemctl start AdGuardHome
#开机自启
systemctl enable AdGuardHome
#重启
systemctl restart AdGuardHome
#停止
systemctl stop AdGuardHome

DNS默认使用53(TCP/UDP)端口进行通信,因此别忘记放行53端口,否则DNS无法正常使用。

#firewalld放行53端口
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --reload
#iptables放行53端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
service iptables save

然后就完事了啊!

最后修改:2019 年 08 月 06 日 03 : 14 AM

发表评论

2 条评论

  1. 樱花

    ./AdGuardHome 执行失败是为什么?

    [root@localhost AdGuardHome]# sudo ./AdGuardHome
    ./AdGuardHome: ./AdGuardHome: cannot execute binary file

    1. sunny
      @樱花

      加执行权限即可chmod +x ./AdGuardHome