当前位置: 首页 > Linux运维 > 使用AdGuard Home搭建一个无广告和跟踪的公共DNS

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

Linux运维 24条评论 2019-2-28 1,912 views

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值得一试。

其它

24 条评论 “使用AdGuard Home搭建一个无广告和跟踪的公共DNS”

  1. wys说道:

    内网架设好了简直就是神器,功能就不多说了,好处多多。

  2. XX说道:

    怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?完了,服务器网站打不开了

    1. xiaoz说道:

      那是因为你搭建的时候选择了使用80端口,和网站冲突了。直接停止服务,删除软件即可。

      1. XX说道:

        我暂停了,安装的文件在哪里,怎么卸载?

        1. xiaoz说道:

          这是二进制的绿色文件啊,你下载到哪个目录的就删除哪个目录。

      2. XX说道:

        Linux系统安装的,就是输入那个代理就开始解压安装

        1. xiaoz说道:

          试试systemctl disable AdGuardHome

          1. XX说道:

            谢谢,我搜索那个下载的压缩包,搜索到了文件,然后我删除了整个文件夹

  3. XX说道:

    有没有视频教程?我搭建完成后,我的网站都打不开了,重启服务器都没有用

  4. 阿秀说道:

    折腾折腾不小心吧广告折腾没了,哈哈

  5. 菜鸟运维说道:

    这个加内部解析是实时生效的吗?

    1. xiaoz说道:

      是的,实时生效。

  6. 增大网说道:

    没玩过博客,认真学习学习!

  7. thb211说道:

    用国外的vps还是被污染毕竟还是53端口

  8. 感谢分享!!!

  9. Busby说道:

    博主你好,请问你搭建后平均解析时间如何,我上游dns设置了阿里和腾讯,昨天一晚上平均解析时间从400多猛增到10000,明显感到慢了很多。是挂载在寝室树莓派上。

    1. xiaoz说道:

      我这里后台统计的平均解析时间是45.55ms,可能树莓派性能太弱了。

      1. Busby说道:

        谢谢,可能确实是这样,换了台vps,解析时间也在50ms以内了

  10. 阿泽说道:

    是不是在VPS上搭建,然后本地DNS地址改成VPS的IP就行了。
    感觉这个真的是比较实用的东西,适合Geek精神的我们去尝试,不过这个需要VPS的与家里网络的延迟不能太高吧。
    如果有更多一些现成规则可以导入或者在线更新,那就完美了。

    1. Cpt说道:

      难道不是是在家庭服务器里搭建吗 [一脸懵逼]
      不知道有现成docker镜像没 [🤭]

      1. 阿泽说道:

        对对,也是,我给想叉了,哈哈哈

      2. xiaoz说道:

        家庭服务器或者延迟低的VPS都可以搭建,并没有局限。

        1. Cpt说道:

          那是,昨晚装NAS docker里了,用着不是那么明显😅

    2. xiaoz说道:

      找一台延迟低的VPS就行了,里面内置了一些广告过滤规则,也可以自己添加规则。

发表评论

电子邮件地址不会被公开。 必填项已用*标注