通常我们使用网络时,宽带运营商会为我们分配一个 DNS 服务器。这个 DNS 通常是最快的,距离最近的服务器,但会有很多问题,比如:
- 访问某些网络服务很缓慢,比如 Apple 的 iCloud 服务。
- 比较担心安全问题,希望能通过设置 DNS 来保证你访问安全的网站。
- 厌烦了每当你输入一个不正确的网址,运营商总会给你跳转到一个充满广告的界面。
这个时候我们就需要自定义 DNS,自定义 DNS 不仅能够加快网页开启的速度,还能够提高浏览网页的安全性。更重要的一点是,如果你使用过 Google Chrome
,应该知道 Google 未来将会限制“拦截广告”的扩展,要想解决此问题只能装个全局的拦截广告软件或者直接从 DNS 服务器层面拦截广告(如果你不想换浏览器)。
AdGuard Home 是一款全网广告拦截与反跟踪软件,可以将广告与追踪相关的域名屏蔽,指向空的主机(DNS 黑洞)。简单来说它就是一个开源的公共 DNS 服务,使用 Go 语言开发,支持家长控制和广告过滤!关键是它还支持 DNS over TLS
和 DNS over HTTPS
,可以运行在 x86 Linux,树莓派上,也可以通过 Docker
部署在群晖 NAS 上。
1. AdGuard Home 安装
AdGuard Home 的安装方法根据你所使用的平台而有所不同,它的二进制文件位于 https://github.com/AdguardTeam/AdGuardHome/releases,可以根据自己的平台下载最新版本。MacOS 的安装方法如下:
# 下载 AdGuard Home
$ wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.98.1/AdGuardHome_MacOS.zip
# 解压并进入 AdGuardHome_MacOS 目录
$ unzip AdGuardHome_MacOS.zip && cd AdGuardHome_MacOS
# 将二进制文件拷贝到 $PATH
$ cp ./AdGuardHome /usr/local/bin/
# 创建 Launch Daemon 的 plist 文件并启动服务
$ AdGuardHome -s install
现在就可以看到服务的配置和状态信息了:
$ sudo launchctl list AdGuardHome
{
"StandardOutPath" = "/var/log/AdGuardHome.stdout.log";
"LimitLoadToSessionType" = "System";
"StandardErrorPath" = "/var/log/AdGuardHome.stderr.log";
"Label" = "AdGuardHome";
"TimeOut" = 30;
"OnDemand" = false;
"LastExitStatus" = 0;
"PID" = 1464;
"Program" = "/usr/local/bin/AdGuardHome";
"ProgramArguments" = (
"/usr/local/bin/AdGuardHome";
"-s";
"run";
);
};
plist 文件位于 /Library/LaunchDaemons/
目录下:
$ cat /Library/LaunchDaemons/AdGuardHome.plist
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>AdGuardHome</string>
<key>ProgramArguments</key>
<array>