这篇话题其实是从 GN/GW 上我自己的帖子搬回来的。
看到 GN 某个帖子(等我再想回去找标题的时候发现已经没了,连我那个帖子也没了 )以后自己再稍作研究的成果。原帖的方法是用 Android 9 以后新增的私人 DNS 功能实现的。
但是 Android 9-12 用的私人DNS是基于 DNS over TLS 的,现在更流行的大概是另一种叫做 DNS over HTTPS 的加密 DNS 方案。
所以这两个有啥区别? DNS over TLS 会单独用到 853 端口,因此即使请求和响应本身都已加密,具有网络可见性的任何人都发现来回的 DoT 流量。DNS over HTTPS 则把DNS 查询和响应伪装在其他 HTTPS 流量里面,因为202年了,不太可能整个屏蔽 HTTPS 流量,所以 DNS over HTTPS 更难被干扰的样子。
不过还要泼一盆冷水,加密 DNS 只能解决像 GN 这种只是被 DNS 污染的问题,对于维基百科或者 e-hentai 那种 SNI 阻断,或者 Google 级 VVVIP 待遇就无能为力了。(结论就是不如一直开着梯子(x))
(后面就把 DNS over HTTPS 叫做 DoH 了)
至于有什么 DoH 服务器嘛……自己搜索一下不难找到,或者如果你信得过我的话,用我自己的也没问题 : https://kitsunes.world/dns-query
然后下面演示 Windows 上 Chrome/Edge/Firefox ,Android 上 Chrome 以及 iOS 怎么用,剩下的自己搜索一下应该也能找到教学。(国产浏览器就算了,赶紧换掉。)
Edge : 在“设置-隐私、搜索和服务-安全性-使用安全的 DNS 指定如何查找网站的网络地址” 里填上上面的地址。
Chrome:在“设置-隐私设置和安全性-安全-高级”里打开“使用安全DNS”,然后选择自定义填上上面的地址。
Firefox:在“设置-常规-连接设置”里启用“使用基于 HTTPS 的 DNS”,再选择自定义填上上面的地址。( Firefox 这边貌似不需要加上后面的路径)
Android 版 Chrome 和 Bromite :在“设置-隐私设置和安全性-使用安全 DNS”里,先选择使用安全 DNS,再选择“另选一个提供商-自定义”,填上上面的地址。
iOS、iPadOS (14 以上) 和 macOS (12以上): 先安装描述文件
kitsuneDNS.mobileconfig (3.7 KB)
, 用 Safari 下载,或者保存到文件应用里打开),然后打开“设置-通用-VPN、DNS和设备管理”,在 DNS 中选择一个 DNS 服务器。(KitsuneDOH)