地区运营商对部署了GTS证书网站的IP阶段性阻断

gacjie
1年前发布

简单介绍

在折腾联通宽带下的虚拟机时,需要换源,在执行之前写的脚本的时候,发现阶段性无法链接,因此做了一些测试。

测试地区线路

北京联通:家宽会阻断
重庆联通:家宽会阻断
上海电信:家宽会阻断 但不容易触发
腾讯云广州BGP:机房会阻断
江苏南京联通:家宽会阻断
山东枣庄联通:家宽会阻断
山东潍坊移动:家宽未阻断
浙江宁波电信:家宽会阻断 机房不会阻断
河南安阳联通:家宽未阻断
河南新乡移动:家宽未阻断
河南南阳电信:家宽未阻断

网站影响

找了几个联通的用户测了一下
浏览器正常访问是不影响的
触发条件应该是非浏览器访问 + Cloudflare + GTS
但我在curl上面指定UA,依然阻断,具体怎么识别浏览器的还不清楚。
也就是会影响阻断命令行下载、api接口之类的请求。
不适合脚本站或者需要对接客户端提供API服务。

阻断情况

我执行了以下命令进行测试

curl --insecure --resolve "www.baota.me:443:172.67.69.150" "https://www.baota.me" -o "www.baota.me.txt" --max-time 10

测试发现所有联通都会阻断
第一次 执行上述命令 正常访问
第二次 执行上述命令 无法访问

阻断规律

为了搞清楚阻断频率因此我在江苏南京联通做了个每3分钟访问一次的计划任务
连续阻断情况为1-3次 即有时候会阻断3-9分钟
阻断过后会有15分钟左右的正常访问时间
然后进入下次阻断周期
目前测试阻断全部CloudFlare的IP,包括一些跟CF合作的IP。

阻断原因

原以为是阻断了CF的IP或者ASN,经过loc论坛回复得知可能是因为证书品牌的缘故。
因此单独使用一个NS接入的域名进行测试.
测试结果
使用GTS证书
还是跟上面一样访问一次就阻断了。
然后使用API进行更换证书为let's证书
连续测试多次并且更换其他IP都没有阻断的情况

证书版本测试

群里有老哥说可能是因为tls1.3+ech导致的无差别阻断。
然后我改进了一下命令 指定tls最大版本1.2进行测试

curl --insecure --resolve "www.baota.me:443:172.67.69.150" "https://www.baota.me" -o "www.baota.me.txt" --max-time 10 --tls-max 1.2

测试阻断依旧

解决办法

Cloudflare NS方式接入,可以使用api更换证书颁发机构
Cloudflare SAAS方式接入的无解,API提示需要Enterprise套餐。
也可以使用其他CDN来服务联通线路的用户。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
取消