隐私 · DNS 日志 · 自建验证

零日志 DNS
承诺的边界与真相

"零日志"是 DNS 行业最容易被滥用的营销词。它到底承诺了什么?谁在真正执行?自建节点怎么验证?本文一次讲清。

3 要素客户端 IP + 域名 + 时间戳
24h多数厂商的临时日志窗口
DoH/DoT只加密链路,不加密服务器端
自建唯一可验证的零日志路径
TL;DR · 核心结论

DNS 日志至少包含客户端 IP、被查询域名、查询时间戳三要素,拼起来足以还原一个人的完整浏览足迹。DoH/DoT 只加密传输链路,DNS 服务器端仍然看得到这三要素。"零日志"不是统一标准:Cloudflare 隐私政策承诺不把查询数据用于广告、不长期保留 IP;但各家对"保留多久、是否做聚合统计、是否响应执法令"的定义差异很大。真正可验证的零日志只有一条路:自建 DNS(unbound / AdGuard Home)并显式关闭查询日志、定期核查磁盘上没有日志文件。零日志政策不能对抗司法强制,只能降低被留痕的概率。

What DNS Logs Reveal

DNS 日志到底暴露了什么

一次普通 DNS 查询在服务器端留下的字段,远超大多数人的想象

客户端 IP 谁在查

DNS 服务器从 TCP/UDP 连接里直接看到你的出口 IP。家庭宽带 IP 可定位到运营商 + 小区级别,企业 IP 可定位到公司。

被查询域名 查了什么

你访问 mail.google.com、weibo.com、bank.xxx.cn,DNS 服务器全都知道。即使网页走 HTTPS,DNS 这一层仍是明文暴露目标域名。

查询时间戳 什么时候查

几点几分查了哪个域名,配合你的生活规律,足以推断作息、工作节奏、健康状况(例如频繁查医院、心理服务相关域名)。

查询类型与 ECS 细节画像

A/AAAA/MX/TXT 查询类型、EDNS Client Subnet 携带的网段信息,会进一步暴露你的网络环境、邮箱服务商、是否使用第三方 SDK。

重点:DoH(RFC 8484)和 DoT(RFC 7858)只加密"你 → DNS 服务器"这一段链路,让运营商、公共 Wi-Fi、中间设备看不到你查了什么。但 DNS 服务器本身仍然完整接收这三要素。选对服务商(或自建)才是隐私的真正底线。

Policy Comparison

主流公共 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。

Self-Hosted Practice

自建零日志的实践与验证

不相信任何服务商的承诺,自己搭、自己查、自己验证

1. 选软件:unbound 或 AdGuard Home

  • unbound:纯递归 DNS,配置项 log-queries: no 即可关闭查询日志
  • AdGuard Home:Web 面板 → 设置 → 常规设置 → 关闭"查询日志",并把日志文件路径指向 /dev/null
  • 两者都支持 DoH/DoT 上游,可作为加密 DNS 服务器对外提供服务

2. 显式关闭一切写盘日志

  • unbound:verbosity: 0,log-queries: no,log-replies: no
  • AdGuard Home:查询日志保留天数设为 0,关闭"过滤日志"
  • 系统层:确认 /var/log/ 下没有 dns/unbound/AdGuardHome 相关日志文件在持续增长

3. 用 strace / lsof 验证不写盘

  • 运行 lsof -p $(pidof unbound) | grep -E '\.log|/var/log',应看不到任何打开的日志文件
  • 或 strace -p $(pidof AdGuardHome) -e trace=write 观察写入目标,应只写网络 socket 与内存
  • 重启服务后再发一批查询,检查磁盘日志文件 mtime 是否更新

4. 运营边界:知道什么是做不到的

  • 零日志不能对抗执法机关的实时监控命令(要求镜像流量)
  • 服务器租用商(VPS 厂商)自己的网络层日志是另一回事
  • 自己的客户端 IP、路由器访问记录仍可能在本地留存
  • 高隐私场景应配合 VPN/Tor 使用,不要把零日志 DNS 当万能隐私方案
FAQ

常见问题

零日志 DNS 是不是真的不记录任何东西?+
不一定。"零日志"是营销词,各家定义不同:有的指不记录查询域名与客户端 IP,有的只承诺不做长期存储,仍会保留 24 小时以内的临时调试日志。必须看服务商官方隐私政策原文,而不是首页宣传语。
DNS 日志到底能泄露多少隐私?+
一次明文 DNS 查询会留下客户端 IP、查询时间、被查询域名三要素,拼起来足以还原一个人每天访问过哪些网站、什么时间、用什么网络。DoH/DoT 只加密链路,服务器端仍能看到这些字段。
自己搭 DNS 服务怎么做到真正零日志?+
用 unbound 或 AdGuard Home,显式关闭 query log,不写访问日志到磁盘;服务器内存足够大时查询只走内存缓存;定期检查 /var/log 下没有 dns 相关日志文件;最稳妥的是把日志级别设为 minimal 或 disable,并用 lsof/strace 二次验证。
零日志服务会不会被执法机关要求记录?+
会。任何在司法辖区内运营的服务商都可能收到法院命令或国家机器要求开始记录或移交数据,零日志政策只能降低风险,不能对抗强制法律程序。高隐私需求应选择司法友好辖区 + 自建节点,并配合 VPN/Tor 使用。
References

参考来源