Mark

使用AdGuard Home搭建一个无广告和跟踪的公共DNS
前言 AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后,它将保护您所有家用设备,同时您...
扫描右侧二维码阅读全文
29
2019/05

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

前言

AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件。随着物联网与连接设备的兴起,掌控您自己的整个网络环境变得越来越重要。
简单点说AdGuard Home就是一个公共DNS服务,如Google的公共DNS8.8.8.8,和DNSmasq一样AdGuard Home是开源的,可以自行搭建安装后在客户端配置使用。xiaoz之前分享过一个自己写的项目PHPDNS ,PHPDNS在DNSmasq的基础上开发了WEB界面,功能比较简单,不过该项目不在维护,这里推荐功能更加强大的AdGuard Home
AdGuard Home使用Golang开发,编译好了各大平台的二进制文件,因此安装非常简单,这里以CentOS 7为例,其它系统可参考官方帮助文档。


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端口进行初始化,如下截图。

浏览器打开http://IP:3000,根据提示无脑的下一步即可。首次初始化会要求设置账号、密码(请牢记),下次登录需要使用。


AdGuardHome基本设置

设置中文

进入AdGuardHome后台 - 网页右下方 - 可设置为繁体中文,感觉是机器翻译的,不太准确,将就用。

设置上游DNS

AdGuard Home默认使用Cloudflare DNS作为上游服务器,如果您服务器在国内可能请求上游DNS延迟比较高,在后台 - 设定 - 可以设置为国内的DNS,如腾讯的119.29.29.29,但坏处是不支持DNS over TLS

过滤器

在后台 - 过滤器,可以看到AdGuardHome内置了部分广告过滤规则,但在中国有点水土不服,如果要想更完美的实现广告屏蔽还需要自己添加规则。

以下是过滤规则的一些说明,更多规则可以在AdGuardHome后台查看或参考官方帮助文档。

  1. ||example.org^ - 封锁example.org域及其他子域
  2. @@||example.org^ - 解除封锁example.org域及其他子域
  3. 127.0.0.1 example.org - 将example.org host指向到127.0.0.1(不包含其他子域)
  4. ! - 注释符号
  5. # - 也是一个注释符号
  6. /REGEX/ - 正则表达式模式

其他设置

为了方便管理,可以继续输入命令./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

总结

AdGuard Home支持MacOS、Windows、Linux、树莓派等系统,提供二进制和docker安装方式,安装简单。AdGuard Home还提供了直观的统计系统,使用方便。如果您打算自建一个公共DNS,AdGuard Home值得一试。

标签:
Last modification:October 29th, 2019 at 01:50 pm
如本文“对您有用”,欢迎随意打赏我,让我坚持创作!

Leave a Comment

3 评论

  1. 缙哥哥 贵宾   Windows 10 x64 Edition Windows 10 x64 Edition Google Chrome 77.0.3865.90 Google Chrome 77.0.3865.90

    用阿里云1H2G1M的服务器可以支持多少人使用?


    1. Mark 博主   Windows 10 x64 Edition Windows 10 x64 Edition Google Chrome 77.0.3865.90 Google Chrome 77.0.3865.90
      @缙哥哥

      这个没具体算过,我测试的时候感觉负载不是很大。


      1. 缙哥哥 贵宾   Windows 10 x64 Edition Windows 10 x64 Edition Google Chrome 77.0.3865.90 Google Chrome 77.0.3865.90
        @Mark

        搞个海外服务器岂不是可以用作医学同行查找谷歌文献使用……就怕滥用了!