内容提要
本文介绍了作者为安卓用户重新设计的 DNS over HTTPS (DoH) 服务 ZNS,解决了安卓系统无法直接使用的问题。通过将用户标识放入子域名中,支持 DoH 和 DNS over TLS (DoT) 协议,并分享了申请泛域名证书的过程及安全措施,最终实现了 ZNS 服务的正常运行。
延伸解读
安卓系统的私密 DNS 限制
安卓系统对私密 DNS 的支持存在限制,用户只能在白名单中的 DNS 服务使用 DoH 协议,其他则默认使用 DoT。这种设计可能影响用户体验,尤其是对希望使用 DoH 的用户来说,需注意选择合适的 DNS 服务。
安全性与证书管理
在申请泛域名证书时,使用 DNS-01 challenge 可能带来安全风险。作者通过在安全设备上申请证书并上传到 ZNS 服务器,降低了风险。这一过程强调了在处理敏感信息时,安全措施的重要性。
ZNS 服务的协议兼容性
ZNS 服务通过实现 DoT 协议的处理逻辑,能够将 DoT 请求转换为 DoH 请求处理。这种兼容性设计使得用户在不同协议间切换时更加灵活,提升了服务的可用性。
Q&A
ZNS 服务是什么?
ZNS 服务是一个自建的 DNS over HTTPS (DoH) 服务,旨在解决安卓用户无法直接使用 DoH 的问题。
如何在安卓系统中设置私密 DNS?
在安卓系统中设置私密 DNS 时,需要输入格式为 https://${TOKEN}.zns.lehu.in/dns-query 的域名。
申请泛域名证书的过程是怎样的?
申请泛域名证书需要使用 DNS-01 challenge,通过提供域名管理 API 创建和删除特定 TXT 记录来验证域名所有权。
安卓系统为什么不支持 DoH?
安卓系统默认不支持 DoH,只有在白名单中的私密 DNS 才会使用 DoH,其他则使用 DoT 协议。
ZNS 如何处理 DoT 请求?
ZNS 通过监听 853 端口,将 DoT 请求转换为 DoH 请求处理,并将返回内容转换为 DoT 数据返回给客户端。
DDR 和 SVCB 记录有什么关系?
DDR(RFC9462)使用 SVCB 记录来告知客户端当前递归解析服务器支持的通信协议,以便客户端选择合适的协议。