一日一技|曲线救国,让 Android 用上 DoH

💡 原文中文,约6600字,阅读约需16分钟。
📝

内容提要

文章讨论了DNS污染和劫持问题,介绍了Android系统中私人DNS功能的实现,比较了DNS-over-TLS(DoT)和DNS-over-HTTPS(DoH)的优缺点,并提供了通过ROOT权限配置DoH以增强DNS请求的安全性和隐私性。

🎯

关键要点

  • DNS污染和劫持是一个严重的问题,传统DNS协议易受攻击。
  • Android 9引入了私人DNS功能,使用DNS-over-TLS(DoT)加密DNS请求。
  • DoT存在连接建立频繁和端口识别明显的问题。
  • DNS-over-HTTPS(DoH)连接更稳定,难以被识别,提供更好的隐私保护。
  • Android 11后私人DNS支持DoH,但仅限于Google和Cloudflare的公共DNS。
  • 使用第三方APP如Intra可以实现DoH,但需消耗更多电量。
  • ROOT后使用DNS模块如dnscrypt-proxy和AdGuardHome可以更灵活地配置DoH。
  • IPv6可能导致DNS请求被截获,影响DNS解析。
  • 通过本地运行DoT服务器并配置DoH地址,可以实现更广泛的DoH支持。
  • 申请SSL证书需要域名,使用certbot工具可以从Let's Encrypt申请免费证书。
  • 配置AdGuardHome模块需要ROOT权限,确保后台运行不被杀掉。
  • 配置完成后,通过私人DNS设置使用自定义的DoT地址。
  • 这种方法相比第三方APP更省电,灵活性更高,避免了IPv6 DNS的干扰。

延伸问答

什么是DNS污染和劫持?

DNS污染和劫持是指在DNS请求过程中,攻击者监控、篡改DNS记录,导致用户访问错误网站。

Android系统如何实现私人DNS功能?

Android系统在9以后引入私人DNS功能,使用DNS-over-TLS(DoT)加密DNS请求,增强安全性。

DNS-over-TLS和DNS-over-HTTPS有什么区别?

DNS-over-TLS(DoT)每次请求需建立新连接,特征明显;而DNS-over-HTTPS(DoH)连接更稳定,难以被识别。

如何在Android上配置DoH以增强DNS安全性?

可以通过ROOT权限使用dnscrypt-proxy或AdGuardHome模块配置DoH,确保灵活性和电量节省。

使用第三方APP实现DoH有什么缺点?

使用第三方APP如Intra需要消耗更多电量,并且在某些定制安卓系统中可能会被后台限制。

如何申请SSL证书以配置DoT?

可以使用certbot工具从Let's Encrypt申请免费SSL证书,需提供域名进行验证。

➡️

继续阅读