为了屏蔽广告,adblock 可以说是我在 Chrome 浏览器上必装的插件之一了。安装插件虽然简单,但对象也很明确,就是针对浏览器。如果我要屏蔽整个设备上的广告,光靠插件就束手无策了。这种情况下,我们可以借助开源项目 AdGuard Home[1],在自己的 VPS 上搭建专属的 DNS Server 来实现多设备屏蔽广告。在这篇文章中,我将介绍下 AdGuard Home 安装和使用方法。
安装
第一步当然是安装。我准备将服务部署到一台 CentOS 系统的 VPS 上,运行官方提供的脚本来安装:
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
- 1
如果运行时提示 curl: (7) Failed connect to raw.githubusercontent.com:443; Connection refused
,可以修改本地 hosts 文件:
sudo vim /etc/hosts
# 加上一行
199.232.28.133 raw.githubusercontent.com
- 1
- 2
- 3
- 4
脚本运行后会在 /opt/AdGuardHome
目录下生成文件。
/opt/AdGuardHome
├── AdGuardHome
├── AdGuardHome.sig
├── data
│ └── sessions.db
├── LICENSE.txt
└── README.md
1 directory, 5 files
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
执行以下命令来启动服务,服务默认监听在 3000 端口上:
/opt/AdGuardHome/AdGuardHome -s start
- 1
服务启动后,访问 http://localhost:3000
,这里注意要把 localhost 改为自己 VPS 的地址。如果能够看到设置页面,说明安装成功了。
设置
安装完成后,AdGuard Home 会跳转到配置页面,如上图所示。点击「开始配置」进行配置,期间会要求创建一个认证账号,按提示配置即可。登录后界面如下:
由于 AdGuard Home 是一个外国团队开发的开源版本,自带的规则可能不太适合在国内使用。接下来,我会简单调整下 AdGuard Home 的设置,大家在配置的时候可以参考下。
DNS 设置
首先是修改上游 DNS 服务器,可以加入一些常用的 DNS[2] 来提高解析速度,比如:
- DNSPod:119.29.29.29
- 百度 DNS:180.76.76.76
- 阿里 DNS:223.5.5.5 / 223.6.6.6
- 114 DNS:114.114.114.114
点击上方「设置」中的 「DNS 设置」,加入 DNS 地址后点击「应用」保存配置。
过滤规则
接下来是设置过滤规则,网上相关的资源还是比较多的,这里我推荐 GitHub 上一个开源的清单[2]。
https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
- 1
点击上方「过滤器」中的「DNS 封锁清单」,点击「添加阻止列表」后 「添加一个自定义列表」,在清单中填写名称与地址。
保存后就可以看到自定义的封锁清单了,同时请确保清单是勾选状态。
如果规则仍无法满足需求,可以在「过滤器」中的「自定义过滤规则」页面进行设置。
使用
AdGuard Home 提供了各设备的设置指导,可以在「设置指导」页面中获取帮助。
以 Windows 系统为例,设置的步骤如下:
- 通过开始菜单或 Windows 搜索功能打开控制面板。
- 点击进入 “网络和 Internet” 后,再次点击进入 “网络和共享中心”。
- 在窗口的左侧找到 “更改适配器设置” 并点击进入。
- 选择您正在连接的网络设备,右击它并选择 “属性”。
- 在列表中找到 ”Internet 协议版本 4 (TCP/IPv4)“ ,选择并再次点击 “属性”。
- 选择 “使用下面的 DNS 服务器地址” ,并输入您的 AdGuard Home 服务器地址。
本机设置好 DNS 后,访问网页看下屏蔽的效果:
现在回到仪表盘,可以看到相关的拦截信息了。
结语
AdGuard Home 的功能强大,界面友好并支持容器化部署。我们可以将服务部署到 VPS 或者树莓派上,通过对路由器进行设置来创造一个干净的局域网环境供多设备使用。