DNS解析流程.jpeg

所有 DNS 服务器都属于以下四个类别之一:递归解析器根域名服务器TLD 域名服务器权威性域名服务器。在典型 DNS 查找中(当没有正在进行的高速缓存时),这四个 DNS 服务器协同工作来完成将指定域的 IP 地址提供给客户端的任务(客户端通常是一个存根解析器 - 内置于操作系统的简单解析器)。

I. 主理人序

特性

快速:公共DNS(递归解析) + 云解析DNS(权威解析),一站式DNS解析闭环;动态缓存技术,减少层层递归,加速解析响应。稳定:全球数百台服务器组成的集群,充足的带宽资源;多年来公共DNS运营经验,提供高质量,稳定的接入服务。安全:支持用户ECS扩展技术,智能解析;支持DoT/DoH协议,保护用户隐私,安全防劫持。

II. DNS-over-HTTPS/TLS (DoH/DoT)是什么?

dns-over-https-doh.jpeg

自从1987年DNS诞生以来,它就一直处于未加密状态。您的设备与解析器之间的每个人都可以监听甚至修改您的DNS查询和响应。这包括您本地Wi-Fi网络中的任何人,您的互联网服务提供商(ISP)和传输提供商。这可能会披露您访问的域名从而威胁您的隐私。 via Cloudflare_利用DoH,DoT加密DNS,保护DNS查询及响应

DNS over HTTPS(缩写:DoH)是一个进行安全化的域名解析方案。其意义在于以加密的HTTPS协议进行DNS解析请求,避免原始DNS协议中用户的DNS解析请求被窃听或者修改的问题(例如中间人攻击)来达到保护用户隐私的目的。Google及Mozilla基金会正在测试此协议,提高网络安全性。 via 维基百科

什么是基于 TLS 的 DNS?

基于 TLS 的 DNS 或 DoT 是加密 DNS 查询以确保其安全和私密的一项标准。DoT 使用安全协议 TLS,这与 HTTPS 网站用来加密和认证通信的协议相同。(TLS 也称为“SSL”。)DoT 在用于 DNS 查询的用户数据报协议(UDP)的基础上添加了 TLS 加密。此外,它确保 DNS 请求和响应不会被在途攻击篡改或伪造。 via 基于 HTTPS 的 DNS 和基于 TLS 的 DNS | 安全 DNS

什么是基于 HTTPS 的 DNS?

基于 HTTPS 的 DNS 或 DoH 是 DoT 的替代标准。使用 DoH 时,DNS 查询和响应会得到加密,但它们是通过 HTTP 或 HTTP/2 协议发送,而不是直接通过 UDP 发送。与 DoT 一样,DoH 也能确保攻击者无法伪造或篡改 DNS 流量。从网络管理员角度来看,DoH 流量表现为与其他 HTTPS 流量一样,如普通用户与网站和 Web 应用进行的交互。via 基于 HTTPS 的 DNS 和基于 TLS 的 DNS | 安全 DNS

2020 年 2 月,Mozilla Firefox 浏览器开始默认为美国用户启用 DoH。来自 Firefox 浏览器的 DNS 查询由 DoH 加密并转到 Cloudflare 或 NextDNS。其他几个浏览器也支持 DoH,尽管默认情况下它不会开启。

III. 可用的DNS服务器列表(支持DoT)

DNS服务器(支持DoT) 服务商 备注
223.5.5.5 / 223.6.6.6 / 2400:3200::1 / 2400:3200:baba::1 Alidns 参阅
119.29.29.29 or 182.254.116.116 / 2402:4e00:: / 1.12.12.12 / 120.53.53.53 Tencent/DNSPOD 参阅
8.8.8.8 or 8.8.4.4 2001:4860:4860::8888 or 2001:4860:4860::8844 Google 参阅
1.1.1.1 or 1.0.0.1 2606:4700:4700::1111 or 2606:4700:4700::1001 Cloudflare 参阅
94.140.14.14 or 94.140.15.15 for "Default"; Adguard 参阅
94.140.14.15 or 94.140.15.16 for "Family protection". Adguard 参阅

via DNS-over-TLS (DoT)

via 1.DNS 服务器类型;2.DNS 服务器类型_DNS 递归解析器_DNS域名服务器.pdf
3.什么是 DNS_DNS的工作方式_DNS高速缓存的工作方式.pdf
4.基于 HTTPS 的 DNS 和基于 TLS 的 DNS _ 安全 DNS.pdf

IV. 可用的DNS服务器列表(支持DoH)

可用的 DNS-over-HTTPS (DoH) 解析服务完整参阅:传送门

DoH服务器(URL) 服务商 备注
https://dns.alidns.com/dns-query Alidns 参阅
https://cloudflare-dns.com/dns-query Cloudflare 参阅
https://mozilla.cloudflare-dns.com/dns-query Cloudflare 参阅
https://dns.google/dns-query Google 参阅
https://dns.adguard.com/dns-query Adguard 参阅
https://dns-family.adguard.com/dns-query Adguard 参阅

其他可用的公共Doh服务器:参阅

V. 为 Mac 修改系统默认DNS

操作路径:显示器 左上角 -  - 系统偏好设置 - 网络 - WiFi - 高级 - DNS + ;

MacOS 系统 - 修改系统默认DNS服务器.png

114.114.114.114
119.29.29.29
223.5.5.5

VI. 为 Windows 修改系统默认DNS

网络和共享中心 > 网络和Internet > 更改适配器选项 > 找到连上的wifi 更改此连接的设置 > 打开TCP/IPv4的属性

114.114.114.114
119.29.29.29
223.5.5.5

VII. 为 iPad/iPhone 修改系统默认DNS

打开系统 设置App - 无线局域网 - 找到已连接的WiFi名称 - 点击WiFi 名称右边的 i - 下滑 - DNS - 配置DNS;

114.114.114.114
119.29.29.29
223.5.5.5

以上均为设置并替换系统层面的DNS,下面我们转为浏览器或代理工具配置DoH/DoT,即软件层面;注意,iOS代理工具如QuantumultX/Surge/Loon等会全权接管所有网络活动,即所有网络请求可由代理工具接管,包括DNS解析(如果你在代理工具上设置了DNS,则可跳过系统层面设置的DNS),流量转发等等;

VIII. 为你的浏览器配置DoH

为你的浏览器配置DoH(Chrome)

DoH_illustration_2.png

图 via A safer and more private browsing experience with Secure DNS;

为Chrome配置DoH以加密DNS查询

好消息是 Chrome在新版本中已经内置 Cloudflare、Google、OpenDNS、CleanBrowsing DOH服务器,启用DOH时直接勾选即可;参阅

Chrome - Doh - Settings.png

1.浏览器地址栏复制并打开 chrome://settings/security

2.如上图所示进行设置 - 设置 - 隐私设置与安全性 - 高级 - 使用安全DNS - 开启按钮,博主选用的是 Cloudflare 提供的服务;

为你的浏览器配置DoH(Firefox/Edge/Brave/Safari)

由于博主不使用该系列浏览器,故请大家参阅:Configure your browser to use DNS over HTTPS

As of today, Safari does not support DNS over HTTPS.

IX. 为 QuantumultX 配置DoH

据说 Clash系列软件也支持DoH了;

为 Quantumult X 配置DoH

即使配置了Doh,但其服务并不一定总是可用;(建议优先使用国内DoH服务器,如Alidns);

Quantumult X 示例文件说明:

#
# The DNS servers fetched from current network(system) will always be used for better performance(you can disable this feature by using "no-system", but you should at least add one customized DNS server like "server=223.5.5.5").
# When no-ipv6 is set, the DNS module of Quanumult X Tunnel will directly let the AAAA query fail but still allow the A query from IPv6 DNS servers.
# The result of query will only be used for evaluating filter or connecting through direct policy, when connecting through server the result will not be used and Quantumult will never know the destination IP of related domain.
# When doh-server is set, all other regular(has no specific domain related to it) servers will be ignored.
# When multiple doh-server(s) are set, only the first will be used.
# When the doh-server in use is NOT based on HTTP/2, the DoH will be temporarily disabled and the regular servers will be used until next start of the VPN connection.
# Specially directly set 127.0.0.1 for a domain is not allowed in here. if you want some domain(eg: example.com) to be 127.0.0.1, just add "host, example.com, reject" to the "filter_local" section. The reject action will return DNS response with 127.0.0.1 to the query.

如果配置了 doh-server,则会优先使用 doh-server;从当前网络(系统)获取的 DNS 服务器将始终用于更好的性能(您可以使用“no-system”禁用此功能,但您至少应该添加一个自定义的 DNS 服务器,例如“server=223.5.5.5” )。

1.进入Qx 配置文件 - 点击编辑,找到[dns]配置项;参考如下;

[dns]
no-system
server=8.8.8.8
server=1.1.1.1
server=223.5.5.5
server=114.114.114.114
server=119.29.29.29
doh-server=https://dns.alidns.com/dns-query
#doh-server=https://cloudflare-dns.com/dns-query
#doh-server=https://dns.google/dns-query
#doh-server=https://dns-family.adguard.com/dns-query

如何查看DoH是否生效(QX)

配置是否有效?可在 Qx主界面 - 找到 DNS记录 模块;

DNS记录.png

以上。

X. 为 Surge 配置DoH

为 Surge 配置DoH 服务器.jpg

打开 Surge > 顶部配置文件 > 选择你想要编辑的 配置 > 编辑 > 在文本模式中编辑;

[General]
loglevel = notify
bypass-system = true
skip-proxy = 127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,100.64.0.0/10,localhost,*.local,e.crashlytics.com,captive.apple.com,::ffff:0:0:0:0/1,::ffff:128:0:0:0/1
# DNS设置或根据自己网络情况进行相应设置
bypass-tun = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12
dns-server = 119.29.29.29, 223.5.5.5, 114.114.114.114
allow-wifi-access = false
doh-server = https://dns.alidns.com/dns-query

编辑后大概如上,这里选的是阿里云的Doh服务器;

如何查看生效?

返回至 Surge 首页 - > 底部 工具 > DNS 结果;

XI. 如何检测DoH配置成功

1.点击 https://1.1.1.1/help
2.点击 https://www.cloudflare.com/zh-cn/ssl/encrypted-sni/

XII. 附注(一些文献参考)

Cloudflare_利用DoH,DoT加密DNS,保护DNS查询及响应
DNS Privacy Public Resolvers;(可用的DNS服务器及DoH解析服务);

最后修改:2022 年 06 月 07 日 11 : 07 AM