(本部分内容摘编自:节点订阅 β By ZGQ Inc.)
某些网站在国内地区无法访问,通常有三种可能:
网站已关闭。
IP 被墙。
DNS 污染。
一部分情况属于第 3 种,只是域名被 SNI 阻断,可通过以下方法解决此问题:
修改设备的 hosts 文件。
自定义 DNS 服务器。
本作者注:此方法不会改变 DNS 请求与响应“以明文传输”这一特性,故不建议选择此方法。
使用安全 DNS 与安全 SNI。
本教程将围绕着第三种方法展开。
注意: 诸如 Google 等网站和某些 APP 是直接被墙 IP,这种情况下只能在科学上网后访问。
安全 DNS 和安全 SNI 是为了提升网络通信的隐私和安全而设计的,作用在不同的层面。
1. 安全 DNS
2. 安全 SNI
简单总结:
本教程仅为配置安全 DNS 与安全 SNI 的简易操作指南。
ECH 较为新兴,目前仅有部分网站实验性地启用 ECH,本教程提供测试服务端是否支持 ECH 的方法。
再次强调: 被墙 IP 的网站只能在科学上网后访问。
AdGuard DNS 推荐的一系列 DNS 提供商:Known DNS Providers | AdGuard DNS,国内可直连。
curl (GitHub):DNS over HTTPS · curl/curl Wiki · GitHub。
DNSCrypt (GitHub):dnscrypt-resolvers/v3/public-resolvers.md at master · DNSCrypt/dnscrypt-resolvers · GitHub。
若读者知道其它列举 DNS 提供商的网站,欢迎在评论区补充。
多数服务商的 (O)DoH/DoT/DoQ 的 tls 证书是没有对 IP 地址签发认证的,必须写实际的域名,但也有一些 (O)DoH/DoT/DoQ 提供商可以直接使用 IP 作为主机名访问,例如 CloudFlare 的 1.1.1.1
和阿里云公共 DNS 的 223.5.5.5
。(摘编自:DNS 服务 | 新 V2Ray 白话文指南)
大多数浏览器和操作系统的设置仅支持添加 (O)DoH 提供商。
GFW 对于境外 DNS 提供商,存在不同程度的干扰(轻则间歇丢包,重则封锁 IP),具体干扰程度通常与以下因素相关:
DNS 提供商的知名度。
DNS 查询所使用的端口号,853 端口(DoT/DoQ)相比于 443 端口(DoH/ODoH)受干扰程度更大。
请自行根据使用体验选择 DNS 提供商。可在以下网站中测试国内不同省(市)对某一 DNS 提供商的干扰程度:
在“设置 -> 隐私和安全 -> 安全/安全性”中,启用“使用安全 DNS”并选择“添加自定义 DNS 服务提供商”,输入 (O)DoH 提供商的地址后回车。
在“设置 -> 隐私与安全 -> 基于 HTTPS 的 DNS”中,启用策略选择“增强保护”或“最大保护”,随后在“选择提供方”中选择内置提供商或自定义提供商。
在“设置 -> 网络和 Internet 设置 -> WLAN(无线局域网) -> 硬件属性”或“设置 -> 网络和 Internet 设置 -> 以太网”中,找到“DNS 服务器分配”并点击“编辑”,启用 IPv4 和按需启用 IPv6。在“首选 DNS”中输入 (O)DoH 提供商的纯 IP 地址,在“DNS over HTTPS”中选择“开(手动模板)”并输入 https://提供商的域名/dns-query
,随后保存。
提示: 部分 (O)DoH 提供商的 URL 不以 dns-query
结尾,请自行参阅提供商的最新信息。
推荐使用该软件。
适用于:Windows、macOS 和 Linux。其它类型设备可修改 DNS 为正在运行 AdGuard Home 的设备的地址。
官网:AdGuard Home| 适用于任何操作系统(Windows,macOS,Linux)的网络软件。
官方 GitHub 项目地址:GitHub - AdguardTeam/AdGuardHome: Network-wide ads & trackers blocking DNS server。
无法访问 GitHub?尝试访问以下链接(由本作者手动上传至屋舍,仅有 Windows 和 Linux 的 amd64 版本且不保证更新):
以 Windows 为例,下载完毕并解压缩后,运行 AdGuardHome.exe
,随后在浏览器中输入 127.0.0.1:3000
(有可能是其它端口,具体请查看终端日志)。
点击“开始配置”。在步骤 2/5 中,网页管理界面(Web UI)监听端口建议选择一个非特权端口(1025-65535),DNS 服务器监听端口若无特殊需求则建议选择 53 端口,点击“下一步”。
在步骤 3/5 中,设置用户名和密码并点击“下一步”。
在步骤 4/5 中,根据 AdGuard Home 对当前设备和其它内网设备进行配置,随后点击“下一步”。
在步骤 5/5 中,点击“打开仪表盘”以结束初始配置。
在“设置 -> DNS 设置”中,分别在上游 DNS 服务器、后备(回落) DNS 服务器和 Bootstrap DNS 服务器中输入安全 DNS 提供商地址后点击“应用”。Bootstrap DNS 用于解析上游和后备 DNS 服务器的 IP 地址,其不支持输入域名,例如 udp://1.1.1.1
、tls://1.1.1.1
和 https://1.1.1.1/dns-query
,输入 DC 提供商的地址时不受此限制。
若仅希望 AdGuard Home 作为 DNS 解析器,将 AdGuard Home 设置为启动项后即算结束。AdGuard Home 的功能不止这些,但其它功能已脱离本教程的范畴,故若有需要请自行搜索有关 AdGuard Home 的更多“玩法”。
目前不推荐用该软件,其最新更新于 2020/04/11,问题较多,详见该软件的 GitHub Issues。
适用于:Windows。其它类型设备可修改 DNS 为正在运行 Simple DNSCrypt 的设备的地址(需调整部分设置)。
官方 GitHub 项目地址:GitHub - bitbeans/SimpleDnsCrypt: A simple management tool for dnscrypt-proxy。
屋舍(由本作者手动上传):
TBA。
适用于:Android。
官网下载页面:Downloads | Rethink,支持直链、F-Droid 和 Google Play 下载。
直接下载 .apk
文件(官方直链): https://dl.rethinkdns.com/app 。
不止 GitHub,官网也无法访问?欧尼酱真是个无可救药的杂鱼呢~♥️❤️(划掉) 尝试访问以下链接(由本作者手动上传至屋舍):
RethinkDNS 不仅是一个提供安全的 DNS 解析服务的工具,亦是一个强大的防火墙工具。本章节仅涉及 DNS 配置,若有需要请自行搜索 RethinkDNS 防火墙配置相关内容。
TBA。
适用于:Android。其它类型设备可修改 DNS 为正在运行 Nebulo 的设备的地址(需调整部分设置)。
GitHub 项目地址(镜像):GitHub - Ch4t4r/Nebulo: Mirror of https://git.frostnerd.com/PublicAndroidApps/smokescreen. Feel free to contribute here as well.,README 为英文版本,内含多种下载渠道。
屋舍(由本作者手动上传):
Nebulo 专注于提供安全的 DNS 解析服务,配置难度相比于 RethinkDNS 较小。
TBA。
适用于:iOS。
在 App Store 中搜索 DNSecure,找到图标为“黄底白锁”的 DNSecure 并下载。若未找到软件,请在切换 App Store 的地区后再次搜索。
DNSecure 内置“Instructions”配置教程(英文,但有流程图)。
若需要添加自定义 DNS 提供商,在“左上角‘+’号 -> DNS-over-HTTPS/TLS”中,“NAME”自取;“SERVERS”填写提供商的纯 IP 地址,例如 1.1.1.1
和 2606:4700:4700::1111
(IPv6 地址在此处无需添加中括号),请确保填入的 IP 地址均来自同一提供商的同一 DNS 服务端;“SERVER URL”填写与“SERVERS”中的 IP 地址相对应的 URL,此处为 https://cloudflare-dns.com/dns-query
。
安全 DNS 配置完毕后,通常也意味着 ECH 配置完毕,这取决于浏览器和操作系统版本。同时注意:尽量避免使用知名度相对较低的 DNS 提供商。
Cloudflare 的“浏览体验安全检查”:Cloudflare 浏览器检查 | Cloudflare。
一个专注于测试 ECH 的网站:Welcome to ECH!。该网站中亦有其它子域名,模拟在遇到某些异常情况时客户端是否依旧支持 ECH:
服务端配置过期(Stale Server Config): https://stale.tls-ech.dev 。
公共名称有误(Wrong Public Name): https://wrong.tls-ech.dev/ 。
服务端不支持 TLS 1.3: https://tls12.tls-ech.dev/ 。
若读者知道其它测试方法,欢迎在评论区补充。
需科学上网,若访问失败请尝试加上 https://
前缀。
dns.google 是谷歌公共 DNS 解析器的网页。在“DNS Name”中输入待测试服务端的域名并点击“Resolve”,随后在左上角“RR Type”中输入“HTTPS”并再次点击“Resolve”。若响应中包含 ech=xxx
,则意味着服务端支持 ECH。
请确保准备访问待测试域名的设备的 DNS 指向正在运行 AdGuard Home 的设备的地址。
进入 AdGuard Home 的 Web UI,在“设置 -> DNS 设置 -> 日志配置”中勾选“启用日志”,随后点击“查询日志”。
切换设备(若没有多余的设备,直接新增浏览器分页且确保系统 DNS 配置正确亦可),访问待测试域名。访问完毕后,切换到 Web UI 界面并刷新,查询与测试域名相关的 HTTPS 类型的 DNS 响应,若响应中包含 ech=xxx
,则意味着服务端支持 ECH。
DNS 泄露测试在此处主要作用为测试是否存在因设备/程序/服务等绕过安全 DNS 导致的 DNS 请求与响应泄露给 ISP 与其它中间人的情况。假设使用境外安全 DNS 提供商,那么结果(DNS 出口)中不应存在国内 IP 地址。
查看我的 IP 地址 | 查询本机 IP 地址及归属地 | 查看 DNS 出口 IP | 测试 CDN 命中节点 | Sukka | https://ip.skk.moe。
DNS leak test,建议选择“Extended Test”。
在不使用 VPN 与代理时,中间人总能知道用户访问的 IP 地址,通过 IP 地址可推测出具体网站。这样看来,ECH 不就没有作用了吗?
首先,“通过 IP 地址可推测出具体网站”这一点不成立。现代互联网广泛使用 CDN,这意味着存在多个网站共用同一个 IP 地址的情况,直接封锁 CDN 的 IP 将误伤大量正常网站,这亦是 GFW 使用 SNI 阻断的原因之一——实现选择性地高精度地阻断路由到单一 IP 地址的流量。
其次,在 Client Hello 消息中,SNI 不是唯一的敏感信息,ECH 会加密整个 Client Hello 消息以解决 TCP 握手过程中几乎所有隐私问题。
你这目录有问题啊
还有-5条回复,登录后查看更多!
您需要登录后才可以回帖