SNI 阻断测试
2024年1月16日,最早在凌晨的时候,就有用户发现 GitHub 难以连接,主要是难以通过 SSH 连接。
之前 GitHub 被干扰了多年,这次让人怀疑干扰被加强了。gledos 觉得可以测试一下 GitHub 的 SNI 阻断情况,不过找了一下,没有现成的简单易用的工具。
于是让 GPT 写了一个工具,能够测试任意域名的 SNI 阻断状况。原理来自 OONI,本质上是「域前置」的反向应用。
比如使用写着
下面是一些域名的测试结果(30 秒左右):
+ 百度:轻松通过测试,成功连接 30 次。
+ 谷歌:被 TCP Reset。
+ Steam 社区:被 TCP Reset。
+ Steam 商店:部分请求遭到了延迟,无法在一定时间内完成握手,这可能就是用户感到「网络劣化」的原因之一。成功连接 15 次。
+ GitHub:遭到延迟的概率比 Steam 商店高多了。成功连接只有 5 次。
+ GitHub Gist:被 TCP Reset。
(以上测试不够严谨,也许需要其他地区的人来测试)
工具是由 Python 编写的,没有使用第三方依赖,应该可以直接使用。代码被托管在了 GitHub Gist。
#工具 #原理
2024年1月16日,最早在凌晨的时候,就有用户发现 GitHub 难以连接,主要是难以通过 SSH 连接。
之前 GitHub 被干扰了多年,这次让人怀疑干扰被加强了。gledos 觉得可以测试一下 GitHub 的 SNI 阻断情况,不过找了一下,没有现成的简单易用的工具。
于是让 GPT 写了一个工具,能够测试任意域名的 SNI 阻断状况。原理来自 OONI,本质上是「域前置」的反向应用。
比如使用写着
https://google.com/
的 SNI,来访问 Cloudflare。GFW 会使用深度包检测,检查 SNI 部分的内容,结果就会看到谷歌的 SNI,以为用户访问的是谷歌,然后发送 TCP Reset。下面是一些域名的测试结果(30 秒左右):
+ 百度:轻松通过测试,成功连接 30 次。
+ 谷歌:被 TCP Reset。
+ Steam 社区:被 TCP Reset。
+ Steam 商店:部分请求遭到了延迟,无法在一定时间内完成握手,这可能就是用户感到「网络劣化」的原因之一。成功连接 15 次。
+ GitHub:遭到延迟的概率比 Steam 商店高多了。成功连接只有 5 次。
+ GitHub Gist:被 TCP Reset。
(以上测试不够严谨,也许需要其他地区的人来测试)
工具是由 Python 编写的,没有使用第三方依赖,应该可以直接使用。代码被托管在了 GitHub Gist。
#工具 #原理