在 Chrome / Firefox / Edge 浏览器和 iOS 上使用基于 HTTPS 的加密 DNS

这篇话题其实是从 GN/GW 上我自己的帖子搬回来的。

看到 GN 某个帖子(等我再想回去找标题的时候发现已经没了,连我那个帖子也没了 :upside_down_face: )以后自己再稍作研究的成果。原帖的方法是用 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 ~~

2023/11/15 更新:介于我没什么 DoH 的需求,加上换了域名,我自己的 DoH 服务先不开了。

然后下面演示 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)

加密 DNS 是好的,但是之前在国产手机上用公共的 DoH (AdGuard, CF 和一个忘记名字的国产主打“无污染”的 DNS)总是无法连接服务器,想来是被阻断了。
最后还是在梯子顶端搭了个 AdGuardHome 来兼顾 DoH 和广告屏蔽 :rofl: