"零日志"是 DNS 行业最容易被滥用的营销词。它到底承诺了什么?谁在真正执行?自建节点怎么验证?本文一次讲清。
DNS 日志至少包含客户端 IP、被查询域名、查询时间戳三要素,拼起来足以还原一个人的完整浏览足迹。DoH/DoT 只加密传输链路,DNS 服务器端仍然看得到这三要素。"零日志"不是统一标准:Cloudflare 隐私政策承诺不把查询数据用于广告、不长期保留 IP;但各家对"保留多久、是否做聚合统计、是否响应执法令"的定义差异很大。真正可验证的零日志只有一条路:自建 DNS(unbound / AdGuard Home)并显式关闭查询日志、定期核查磁盘上没有日志文件。零日志政策不能对抗司法强制,只能降低被留痕的概率。
一次普通 DNS 查询在服务器端留下的字段,远超大多数人的想象
DNS 服务器从 TCP/UDP 连接里直接看到你的出口 IP。家庭宽带 IP 可定位到运营商 + 小区级别,企业 IP 可定位到公司。
你访问 mail.google.com、weibo.com、bank.xxx.cn,DNS 服务器全都知道。即使网页走 HTTPS,DNS 这一层仍是明文暴露目标域名。
几点几分查了哪个域名,配合你的生活规律,足以推断作息、工作节奏、健康状况(例如频繁查医院、心理服务相关域名)。
A/AAAA/MX/TXT 查询类型、EDNS Client Subnet 携带的网段信息,会进一步暴露你的网络环境、邮箱服务商、是否使用第三方 SDK。
重点:DoH(RFC 8484)和 DoT(RFC 7858)只加密"你 → DNS 服务器"这一段链路,让运营商、公共 Wi-Fi、中间设备看不到你查了什么。但 DNS 服务器本身仍然完整接收这三要素。选对服务商(或自建)才是隐私的真正底线。
不要看营销文案,看官方隐私政策原文怎么写
| 服务商 | 客户端 IP 保留 | 查询域名是否记录 | 聚合统计 | 执法配合 |
|---|---|---|---|---|
| Cloudflare 1.1.1.1 | 不长期存储;最多保留 25 小时用于排障,之后删除或匿名化 | 不用于广告,不向第三方出售 | 保留匿名聚合统计用于容量规划 | 仅在收到有效法律程序时配合,且尽量限制范围 |
| Google Public DNS | 临时日志保留约 24~48 小时;完整 IP 地址在 48 小时后删除 | 临时日志包含查询域名;删除后只保留匿名样本 | 保留聚合性能与故障统计 | 按 Google 透明度报告定期披露政府请求数量 |
| Quad9 / OpenDNS 等 | 因安全过滤需要,保留查询与 IP 用于威胁情报 | 会记录查询域名以做恶意域名匹配 | 是其安全服务的核心数据来源 | 按司法辖区法律要求配合 |
| 国内公共 DNS(阿里/腾讯等) | 受国内法规约束,可能按要求留存日志 | 会记录查询日志以配合监管与安全分析 | 聚合用于服务优化 | 必须配合国内执法机关要求 |
| 自建 DNS(本项目 23-4.cn) | 不写盘;内存缓存,重启即失 | query log 显式关闭,不记录域名 | 仅保留匿名计数用于容量监控 | 节点在境外、无专人响应执法请求 |
注:以上政策以各服务商最新隐私政策为准。Cloudflare 政策原文见 cloudflare.com/privacypolicy;1.1.1.1 服务说明见 developers.cloudflare.com/1.1.1.1/setup。
不相信任何服务商的承诺,自己搭、自己查、自己验证
log-queries: no 即可关闭查询日志/dev/nullverbosity: 0,log-queries: no,log-replies: no0,关闭"过滤日志"/var/log/ 下没有 dns/unbound/AdGuardHome 相关日志文件在持续增长lsof -p $(pidof unbound) | grep -E '\.log|/var/log',应看不到任何打开的日志文件strace -p $(pidof AdGuardHome) -e trace=write 观察写入目标,应只写网络 socket 与内存/var/log 下没有 dns 相关日志文件;最稳妥的是把日志级别设为 minimal 或 disable,并用 lsof/strace 二次验证。