<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="使用AdGuard Home搭建一个无广告和跟踪的公共DNS">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2019-11-01 15:14<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
使用AdGuard Home搭建一个无广告和跟踪的公共DNS


AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后，它将保护您所有家用设备，同时您不再需要安装任何客户端软件。随着物联网与连接设备的兴起，掌控您自己的整个网络环境变得越来越重要。

简单点说AdGuard Home就是一个公共DNS服务，如Google的公共DNS 8.8.8.8 ，和DNSmasq一样AdGuard Home是开源的，可以自行搭建安装后在客户端配置使用。xiaoz之前分享过一个自己写的项目PHPDNS ，PHPDNS在DNSmasq的基础上开发了WEB界面，功能比较简单，不过该项目不在维护，这里推荐功能更加强大的AdGuard Home

AdGuard Home使用Golang开发，编译好了各大平台的二进制文件，因此安装非常简单，这里以CentOS 7为例，其它系统可参考官方帮助文档。

参考：https://www.xiaoz.me/archives/12318

AdGuard Home主要功能

    拦截随处可见的广告

    注重隐私保护

    家庭保护模式

    自定义过滤


CentOS 7 X64安装
AdGuard Home二进制文件位于https://github.com/AdguardTeam/AdGuardHome/releases 可根据自己的平台下载最新版本。CentOS 7安装方法如下： 


XML/HTML代码


    #下载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   119.29.29.29 

过滤器
在后台 - 过滤器，可以看到AdGuardHome内置了部分广告过滤规则，但在中国有点水土不服，如果要想更完美的实现广告屏蔽还需要自己添加规则。

以下是过滤规则的一些说明，更多规则可以在AdGuardHome后台查看或参考官方帮助文档。 


XML/HTML代码


    ||example.org^ - 封锁example.org域及其他子域  

    @@||example.org^ - 解除封锁example.org域及其他子域  

    127.0.0.1 example.org - 将example.org host指向到127.0.0.1（不包含其他子域）  

    ! - 注释符号  

    # - 也是一个注释符号  

    /REGEX/ - 正则表达式模式  





 额外设置

为了方便管理，可以继续输入命令 ./AdGuardHome -s install 安装为服务，然后就可以使用下面的命令来进行管理了。


XML/HTML代码


    #启动  

    systemctl start AdGuardHome  

    #开机自启  

    systemctl enable AdGuardHome  

    #重启  

    systemctl restart AdGuardHome  

    #停止  

    systemctl stop AdGuardHome  





DNS默认使用53(TCP/UDP)端口进行通信，因此别忘记放行53端口，否则DNS无法正常使用。 


XML/HTML代码


    #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值得一试。

其它

    AdGuard官网：https://adguard.com/

    AdGuardHome项目地址：https://github.com/AdguardTeam/AdGuardHome

</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
