自建 DNS 过滤该不该用:先看它解决的问题是不是你的问题
单实例 10 万条规则约占 100-200MB 内存,1GB 的树莓派也能跑
它擅长的是全家广告过滤;如果你只是内网域名解析,用现成的东西更省事。
先说结论
DNS 过滤是性价比最高的自建服务,但必须接受「它挂了全家断网」
- 适合:全家广告过滤
- 不适合:儿童上网时段控制
- 学习成本:53 端口被 systemd-resolved 占用,是第一次部署最常见的失败原因
- 最大收益:上游用明文 53 时,查询内容对运营商可见,DoH 才有意义
- 最大风险:直接把 systemd-resolved 停了,本机 DNS 也跟着坏
它到底解决什么
单实例 10 万条规则约占 100-200MB 内存,1GB 的树莓派也能跑。
换句话说,它把「全家广告过滤」这件事从手工变成可重复的流程。这是它真正的价值,而不是功能列表的长度。
什么时候不该用
下面三种情况,用了反而更累:
直接把 systemd-resolved 停了,本机 DNS 也跟着坏
只配一个 DNS 地址,过滤服务重启时全家上不了网
规则表加到 50 万条,查询延迟从 5ms 涨到 40ms
和替代方案比
缓存 TTL 最小值可设 60 秒,设太大会让换域名后等很久。
| 方案 | 上手成本 | 适用规模 | 代价 |
|---|---|---|---|
| 自建 DNS 过滤 | 中等 | 中大型 | 需要维护 |
| 直接用运营商 DNS | 低 | 小型 | 定制能力弱 |
| 路由器自带过滤 | 低 | 一次性任务 | 不可维护 |

这台工具的关键细节
几个决定长期体验的点:
- 53 端口被 systemd-resolved 占用,是第一次部署最常见的失败原因
- 上游用明文 53 时,查询内容对运营商可见,DoH 才有意义
- 缓存 TTL 最小值可设 60 秒,设太大会让换域名后等很久
- 规则表更新后要重新加载才生效,只改文件不会自动应用
我的建议
DNS 过滤是性价比最高的自建服务,但必须接受「它挂了全家断网」。
先用两周,跑一个真实的小任务;两周后你还想用它,再谈长期。
还有几处容易忽略的
都是小地方,但出问题时往往就卡在这里。
- 单实例 10 万条规则约占 100-200MB 内存,1GB 的树莓派也能跑
- 所有设备都指向它时,它一挂全家断网,必须准备第二个 DNS
工具是解法,不是身份。
评论 (3)
备份没验证过等于没有,这条我认。
排查顺序那段直接抄进值班手册了。
「先看日志再猜」这句话值一篇文。
发表评论