已经有很长一段时间没有遇到Github抽风的情况了,不幸的是最近又又遇到了。
有意思的是在搜索并试图解决此问题的过程中我发现了几个有意思的东西。
先是发现了这个,介绍了几个有意思的Github项目,可以帮助解决DNS污染的问题,甚至可以实现自动更新HOSTS文件,但是我试过后发现依然404。
后来我看到这篇才恍然大悟,高啊。
当然考虑到有人看不到这篇的内容,我帖一下,侵删。
本贴仅为学习交流,希望大家不要跑题~
起因
从前几天开始,我发现 Github 总是频繁无法访问(直连),而我这么多年很少遇到这种情况。
稍微注意了下,发现竟然有规律,于是花了一下午时间不停测试,得出了一些不成熟的结论。
复现
测试环境:Windows10(联通家庭宽带)、Android 手机(联通 4G)
一开始我是拿了一些 github.com
的 IP 放在 Hosts 文件中轮番指向 github.com
来测试。
一旦指向后去访问 Github,就会发现这个 IP 的 443 端口会超时(TCPing),然后浏览器提示超时。
如果我关闭网页(避免浏览器一直重试),等 3 分钟后(TCPing 超时 90 次,超时时间 2 秒)443 端口就通了。
在此期间,该 IP 的 80 端口和 ICMP Ping 是一直正常通顺的,只有 443 端口超时。
在此期间,整个局域网下全都 443 超时(准确说是整个宽带网络下),而独立的手机 4G 网络 TCPing 443 正常(包括其他在线端口测试网站也都 443 正常,国外更不用说了一切正常)。
在此期间,对该 IP 进行 TCP 路由追踪时,会在出口处完全中断。
看到这里,其实就发现不对劲了,于是我又尝试手机共享流量数据网络给电脑,同样可以复现。
这时候,因为手机和电脑在同一个局域网(流量数据网络)下,所以也都 443 超时的。
进阶
测着侧着,突发奇想如果指向其他非 Github 的 IP 会怎么样?
于是我就找了个能用的 Cloudflare CDN IP(只要 443 端口可以 TCPing 就行)指向 Github 后,发现也会出现 443 端口超时的情况。。。
我也尝试过把 Github 的 IP 指向其他域名,结果一切正常,没有出现类似情况,只是针对 Github。
其他机制
因为持续测试了好几个小时的原因,还发现了一些其他机制:
触发时间/超时时间
有时候是一旦触发条件,就会直接超时 3 分钟(TCPing 超时 90 次,超时时间 2 秒),期间完全超时。
而有的时候是这 3 分钟期间还会漏掉一些正常延迟的 TCPing 结果,但经过测试依然无法访问网页,应该是模拟丢包。
而有的时候触发条件后,如果立即停止访问 Github,则就会发现 443 端口不再超时了。而如果一直不停的重试网页,那么超时时间就会无限长(重置为 3 分钟),这时候再去停止重试网页,超时时间就固定为 3 分钟了。
随机/轮番针对
有意思的是,似乎是随机或轮番针对 Github IP 的。
因为我发现有时候 IP A 在某一段时间内是可以正常访问的,相应其他的 IP B C D 等这段时间就会无法使用(一旦访问就 443 超时)。而过一段时间 IP A 又无法访问了,但又有另一个 IP B 可以正常访问了(顺序没有发现规律)。
也就是说,在任意时间总有一个(或几个) IP 是可以正常访问的,且不停变换。
目前为止,我只在我的联通宽带+联通 4G 网络下可以稳定复现,不清楚其他地区、运营商是否也一样。
欢迎大家测试、交流、分析。
最后再帖点有意思的回复:
即该 IP 的 443 端口超时后,只会影响你自己的宽带,不会影响和你共享公网 IP 的 NAT 下其他宽带用户。
我写了个工具去测试github解析出来的一些IP, 发现确实是总有一部分能连, 一部分不能连, 即使好长时间没连过github也是如此. NAT在外面并不能分辨来源吧, 服务器只能看到一个IP从不同端口发来握手包, 但并不能分辨出哪些端口是同一终端发来的. 最近的策略好像有些变化了, 识别出握手包并不会很快把该IP加入黑名单, 已经无法识别出加入黑名单的时机了, 也无法确定解除黑名单的时机. 唯一能确定的是总有能访问的一些IP, 也总有一定丢包的一些IP, 变化的也很频繁, 目前访问GitHub IP的成功率在一半左右. 但幸好只要握手成功, 那么该连接断开之前都能很流畅地上下行. 所以用浏览器打开的话, 只要页面打开了, 一段时间内重用该连接就一直能浏览下去. 很明显是在温水煮青蛙了. 十四五规划里有开源建设, 说明是打算捧国内的平台了, 同时逐步弱化github.
我没墙,就是让你一会能访问一会不能,让你崩溃
呕 这比彻底墙掉还令人恶心
第一节 加强关键数字技术创新应用
聚焦高端芯片、操作系统、人工智能关键算法、传感器等关键领域,加快推进基础理论、基础算法、装备材料等研发突破与迭 代应用。加强通用处理器、云计算系统和软件核心技术一体化研发。加快布局量子计算、量子通信、神经芯片、DNA存储等前 沿技术,加强信息科学与生命科学、材料等基础学科的交叉创新,支持数字技术开源社区等创新联合体发展,完善开源知识产 权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务。
十四五规划原文 不知道和这个有没有关系
文章评论