一日一技|曲线救国,让 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证书,需提供域名进行验证。
➡️