AdGuard 的安装和配置网上有很多。最简单的是 Docker,直接命令行启动容器。

让内网所有设备都无缝享受 AdGuard 的服务,要麻烦一些。如果不搭配科学插件,也还简单。就是在路由器的 LAN 设置 -> DHCP 设置里,把 DNS Server 服务器地址填 AdGuard 在内网的 IP 地址。如果 AdGuard 搭建在 NAS 上,就填 NAS 的地址——前提是 NAS 服务器的 53 端口没有被其他程序和应用占用。一般也不会被占用。

如果再加上科学插件,整个流程又复杂一层。网上关于整个流程讲述不多。以下是用通俗语言描述的请求流程:

注1:以下技术内容大部分由 Alick 同学原创友情贡献,作者主要是整理。
注2:以下内容在 ASUS RT-AC86U 路由器上测试有效。

1、客户端(比如PC或者TV盒子)请求路由器;
2、路由器请求网关(一般情况下,路由器自己就是网关);
3、网关把DHCP配发的动态IP和DNS信息告诉客户端;
4、客户端根据DNS服务器地址请求DNS服务;
5、DNS服务接入AdGuard,将广告、木马等域名解析屏蔽掉;
6、AdGuard 将剩余请求放回网关;
7、网关将请求移交给科学插件;
8、科学插件根据本身的配置,将DNS请求一分为二(比如,区分国内和国外);
9、科学插件根据国内外区分,将流量转发到不同的线路渠道;
10、路由器把最后返回的访问结果返回给客户端,完成整个请求。

流程图如下(不一定对,大意如此):

以华硕 ASUS RT-AC86U/88U 搭配 KoolShare 梅林插件举例,主要需要设置的地方包括:

1、KoolShare 的梅林固件安装软件中心和科学插件;

2、启用 KoolShare 科学插件的自定义 DNS 配置

3、在路由器设置 -> LAN 设置 -> DHCP 设置里,在 DNS Server 里填写 AdGuard 服务器所在 IP 地址;

告诉客户端,当它们开始一个请求,去哪里解析域名。

4、在 AdGuard 顶部导航里找到 Setting -> DNS Setting -> Upstream ,填入网关服务器的地址(一般常见默认就是路由器地址)。当 AdGuard 完成屏蔽工作以后,将剩余请求移交给实际解析域名的 DNS 服务。

Screen Shot 2020-03-12 at 4.24.36 P

5、在科学插件里,正常设置外国 DNS:

Screen Shot 2020-03-12 at 4.25.31 P

如果一切设置正常,应该可以在 AdGuard 的 Query Log 里看到所有域名解析请求。

[完]