一日一技|曲线救国,让 Android 用上 DoH
内容提要
文章讨论了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功能,尤其是DoH,可以有效提高DNS请求的安全性和隐私性,值得用户关注。
DoT与DoH的比较
虽然DNS-over-TLS(DoT)为DNS请求提供了加密,但其连接建立频繁且端口识别明显,可能被识别和干扰。相比之下,DNS-over-HTTPS(DoH)连接更稳定,难以被识别,提供更好的隐私保护。因此,用户在选择DNS协议时应考虑其隐私需求和网络环境。
ROOT权限的必要性
在Android设备上实现更灵活的DNS配置,特别是使用AdGuardHome等模块,需要ROOT权限。虽然这可以带来更高的灵活性和省电效果,但也增加了设备安全风险。用户在获取ROOT权限时应谨慎,确保了解相关风险和后果。
延伸问答
什么是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证书,需提供域名进行验证。