使用AdGuard Home搭建一个带广告过滤的私有DNS服务

使用AdGuard Home搭建一个带广告过滤的私有DNS服务
  自定义DNS不仅能够加快网页开启的速度,还能够提高浏览网页的安全性。AdGuard Home是摆脱恼人广告,在线跟踪,保护您远离恶意软件、加快上网速度的最佳方案。而借助开源的AdGuard Home项目,我们也就能为自己搭建一个快速、安全的DNS Service。

AdGuard Home能做什么?

  • AdGuard Home是一款全网广告拦截与反跟踪软件。在将其安装完毕后,它将保护所有家用设备,同时不再需要安装任何客户端软件。随着物联网与连接设备的兴起,掌控自己的整个网络环境变得越来越重要。
  • 不管是在智能电话上,还是在如智能冰箱,智能吸尘器等智能产品上,广告和跟踪器都在采集用户信息。AdGuard Home为网络上的所有设备提供统一的广告/跟踪器拦截的解决方案。
  • 运行自己的 AdGuard Home 服务器比使用公共 DNS 能做得更多,决定某些服务器是否应该被拦截; 监控您的网络活动; 添加您自己的过滤器规则。
 

AdGuard Home 的功能

  • 拦截随处可见的广告
  • 注重隐私保护
  • 家庭保护(家长模式)
  • 无需单独配置客户端
  • 可自定义过滤规则
 

基于AdGuard Home开源项目搭建服务

注:以下操作流程仅适用于有计算机基本操作经验的人

 
#下载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

#firewalld放行3000端口(AdGuard Home初始化端口)
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
#firewalld放行53端口(DNS服务端口)
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --reload

#iptables放行3000端口(AdGuard Home初始化端口)
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
#iptables放行53端口(DNS服务端口)
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#保存
service iptables save
#启动AdGuard Home
./AdGuardHome

可以将其绑定为服务,并通过以下命令管理

# Linux 下使用的服务管理器是 systemd 、Upstart 或 SysV,macOS 下使用的服务管理器是 Launchd。
AdGuardHome -s install

# 启动 AdGuardHome 服务
AdGuardHome -s start

# 停止 AdGuardHome 服务
AdGuardHome -s stop

# 重启 AdGuardHome 服务
AdGuardHome -s restart

# 查看 AdGuardHome 服务状态
AdGuardHome -s status

# 卸载 AdGuardHome 服务
AdGuardHome -s uninstall

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

 
 
 
 
 
 
 
 
 
 
 
 
 
# 新建容器
docker pull adguard/adguardhome
# -v 参数后面是加入文件夹映射,指定宿主机上的目录主要用作永久保存AdGuard Home的数据文件和配置文件,可自行根据实际情况修改。
# 这里默认配置目录在 /home/adguard
docker run --name adg --restart=always -v /home/adguard/workdir:/opt/adguardhome/work -v /home/adguard/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 68:68/tcp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome

容器管理

# 启动 AdGuard Home 容器
docker start adg
# 停止 AdGuard Home 容器
docker stop adg
# 删除 AdGuard Home 容器
docker rm adg 
 
 
 
 
 
 
 
 
 
 
 
  • 在注册表里搜索AdGuard,并下载
  • 在映像中选择刚刚下载好的映像,并点击启动
  • 设置中 选择 启用自动重新启动(在nas重启后容器会跟随启动)
  • 设置端口
    左侧为nas的端口,右侧为容器的端口,根据需求设置,左侧端口不能与现有端口相同,否则会造成冲突的服务异常。左侧和右侧的关系相当于NAT转换。

右侧容器端口说明:
3000:用于初始AdGuard Home
443:HTTPS管理页面
53:DNS服务
67:DHCP服务器源端口
68:DHCP服务器目的端口
80:HTTP管理页面
853:DNS over TLS

  • 如果需要保存日志和设置,以免除以后升级后再次设置的话,需要在卷中映射以下文件夹。(升级后需要再次映射)
    在nas本地新建adguardhome文件夹,在adguardhome文件夹内新建conf和work文件夹,

然后分别指定装载路径/opt/adguardhome/conf和/opt/adguardhome/work,如下图:

 
 
 
 
 
  • 下载AdGuardHome_PVE-LXC.tar.gz镜像文件,并上传到PVE系统下的“/var/lib/vz/template/cache”里面
  • 通过网页访问PVE后台“创建CT”
  • 创建:LXC容器,“一般”标签栏的输入以下信息:

主机名称:随便写
密码:自己设置
确认密码:同上
然后点 下一步

  • 点“模板”标签栏的“模版”下拉菜单,选择“AdGuardHome_PVE-LXC.tar.gz”,然后下一步
  • 设置根磁盘大小,2G足以,然后下一步
  • CPU设置1核,下一步
  • 设置内存1024M ,交换分区用默认的512,下一步
  • 根据自己的内网环境设置静态IP,下一步
  • 其他不用设置,直接下一步,然后完成
 
 
 
 

建立在Windows的AdGuard Home是最简单的,图形化UI也没有任何障碍。

  • 下载release中的“AdGuardHomeWindows_amd64.zip”解压、运行。
  • 安装完成后,打开浏览器登录本机IP,初始端口为3000,例如:192.168.7.103:3000

初始化AdGuard Home

在浏览器输入IP地址,端口号为3000,例如:192.168.7.103:3000

记得设置上游DNS服务器地址,配置很简单,全中文界面,就不详解了。

9条评论

Google Chrome 81.0.4044.138 Google Chrome 81.0.4044.138 Mac OS X  10.13.5 Mac OS X 10.13.5

可以的呢,晚点我更新下,以前倒是一直有互访的,后来博客升级后,友链功能也不知道扔到那里去了。
看到你的友链那边已经更新了

Google Chrome 81.0.4044.138 Google Chrome 81.0.4044.138 Mac OS X  10.13.5 Mac OS X 10.13.5

哈哈,我一直以为点击开启就好了,原来还要自建服务器,当时阿里刚出来T5实例的时候,还真以为占到便宜了,结果买回来根本不能放置正常的网站,结果就空置在那边了。
喜欢看大神们更新互联网的新奇玩意

Firefox 68.0 Firefox 68.0 Android 10 Android 10

欢迎来玩呀 hhhh,
AdGuard也有客户端,下载安装开启即可,不过意义不大,因为用的是他们官方的dns,墙里反而水土不服,不过我早就想在局域网搞个自用dns系统了,相对客户端一劳永逸,尤其是在墙外我需要优化境内和境外的解析速度,比较烦,比起其他dns系统,这个系统算是特别简单的了,刚好满足需求~
阿里云我只嫖过廉价版的e3(还有amazon),感觉t5也不错呀,如果只是建网站,要自己搭环境,虽然灵活度高但不如虚机来的省心。

发表评论

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