Debian服务器变成软路由--Part3
根据前面的2篇文章,目前Debian软路由已经具备了路由器的基本功能,但是内网设备还无法正常获取DHCP地址以及DNS,因为Adguard Home当前处于待初始化状态。
喜欢使用Dnsmasq或者Unbond的小伙伴可以将Adguard Home替换,配置方法有少许不同。
1. 修改PC网络
此时Debian路由器的 br0 地址为 172.16.1.1/24 ,因此为了能够连接到软路由,将PC的网络手动设置成同网段的地址,IP 172.16.1.233,掩码 255.255.255.0 ,网关 172.16.1.1 。

尝试 ping 路由器地址:
如果能 ping 通Debian路由器,则表示前面设置的内容正确,可以开始下一步操作了。
2. 初始化 Adguard Home
打开浏览器,访问如下地址:
可以看到 Adguard Home 的配置页面:

监听接口选择 br0 ,端口可以改成你喜欢的端口,默认80端口。

对于 DNS 的监听端口,暂时选择所有接口,后续会通过修改配置文件进行调整。

创建完账户后,会自动跳转到登录页面。
3. 配置Adguard Home
登录 Adguard Home 后,会看到其仪表盘。直接进入“设置->常规设置”选项卡。

设置过滤器更新间隔:1小时;或者根据喜好选择其他更新周期。

启用了日志和统计计数,周期均为24小时。
进入 “设置->DNS设置” 选项卡。

我这里使用了国内支持 DoT 的 DNS 服务器作为 Adguard Home 的上游 DNS 服务器。
Adguard Home 同时还支持 DoH 的 DNS 服务器,可以根据喜好进行选择。
对于上游服务器的请求模式,我推荐“负载均衡”。
根据长时间的使用体验来看,DoT 能够比 DoH 获得更快的 DNS 应答速度,“负载均衡”也能很好的自动降低 DNS 请求的平均延迟。
由于设置了 DoT ,必须结合使用 Bootstrap DNS 服务器,其作用在于初始化解析 DoT 服务器的地址。

Bootstrap DNS 可以使用国内的普通 DNS 服务器:
“私人反向DNS服务器”即“rDNS”服务器,主要用于将 IP 地址反向解析成域名,其实内网设备的地址解析也会用到这个功能,因此其地址设置为路由器的 IP 地址 172.16.1.1 。

“速度限制” 根据实际情况来设定,我这里参考了 OpenWrt 的相关参数,定义为“150”。
勾选了 “禁用 IPv6 地址的解析”,因为在前篇文章中全局禁用了路由器的 IPv6 功能。
“拦截模式” 保持 “默认” 不变。

DNS 缓存主要修改的内容在,勾选了 “乐观缓存”,其余保持不变。

访问设置主要修改的内容在 “允许的客户端”部分,只允许了本地回环地址和内网 IP 地址段的DNS请求,一定程度上增加安全性。
4. 配置 DHCP 服务器
进入 “设置->DHCP设置” 选项卡。

DHCP接口选择 “br0”;
网关设置为路由器的 IP 地址,172.16.1.1;
IP 地址范围,根据实际内网设备数量进行调整;
我习惯预留一部分地址空间做静态地址分配;
子网掩码:255.255.255.0
DHCP 租约,默认为 86400秒,即24小时。
点击 “保存配置” ,再点击 “检查 DHCP 服务器”、“启用 DHCP 服务器”。

如果想把家里的 Mesh 路由器节点、其他种类 AP 、NAS等设备进行静态 IP 地址分配,可以使用底部的 “添加静态租约”功能进行 mac - ip 地址绑定。
只需要填入“MAC地址”、“主机IP地址”、“主机名称”即可。
此时内网的 DHCP 服务器已经启动成功,重新修改 PC 的网络设置为 “自动 DHCP”,应该可以获得一个IP地址了,并且获得的 IP 地址在刚才设置的 IP 地址范围内。
5. 配置广告过滤
Adguard Home 最有意思的一个功能就是可以添加域名列表来过滤广告;当然除了过滤广告外还可以屏蔽一些恶意网站的 IP 地址。
进入 “过滤器” 选项卡。

上图是我日常启用的一组 DNS 过滤清单;点击 “添加阻止列表” 可以对清单进行修改。

从 Adguard Home 自带清单中挑选:

然后通过 “添加一个自定义列表” 增加 “StevenBlack”:

StevenBlack 的具体地址:
清单全部添加完成后,点击 “检查更新”。
至此,Adguard Home 的页面配置完成。
6. 修改 Adguard Home 的 DNS 监听地址
在前文中,初始化 Adguard Home 时,选择了 DNS 的监听接口选择了 “所有接口”,此处可能有一定的安全风险,虽然防火墙抵挡了来自 WAN 的攻击,但是由于防火墙启用了光猫连接的相关内容,因此光猫的地址段是可以访问 Adguard Home 的 DNS 的。
ssh 到 Debian 路由器,看看当前 Adguard Home 的配置文件:
可以看到 dns 绑定为 “0.0.0.0”,需要对其修改:
注意修改的时候需要有单引号。
修改完成后重启 Adguard Home 服务:
刷新一下 Adguard Home 的页面,可以看到效果:

同时,仪表盘中应该可以看到一些查询数据,以及是哪个主机在查询:

7. 调整系统 DNS 配置
Debian 系统的 DNS 配置文件在 “/etc/resolv.conf” ,而且是独立的文件,不像 Ubuntu 那样被 systemd-resolved.service 控制。因此只需要调整该文件就好。
在前文中用到的 domain,此处再次被用到:
测试一下:

测试一下内网 DNS 强制代理的效果:

可以看到,就算内网设备自己有指定的DNS服务器,同样会被重定向到路由器本身的DNS,并得到DNS查询结果。
8. Adguard Home 其他调整(可选)
定时重启 Adguard Home:
每天凌晨 4:00 自动重启 Adguard Home。
设置 Adguard Home 自动更新时间和周期:
每天的 2:30-3:30 和 14:30-15:30 Adguard Home将自动更新。