卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1829本站已运行4109

cdn.jsdelivr.net 域名遭到DNS污染的解决方法

在jsDelivr被吊销ICP许可证四个月后的4月28日,cdn.jsdelivr.net开始遭到污染,这一个赫赫有名的静态资源库面向中国大陆的服务最终倒在了政策和监管双重压力之下。

结束了三月的研究生复试,四月的博主更多是投身在荒废的大四生活和毕业论文撰写之中。很长时间没有更新博客了。恰好今天看到jsDelivr出现了如此严重的意外,就来简单聊聊jsDelivr的大陆服务是如何走向终点的,顺便给出一些博主建议的解决方案。

Update 2022.04.29
污染已解除,文章内容仅供参考,应该是当局发现影响范围实在太大了吧~

Update 2022.05.17
再次被污染,并且增加了伴随的sni阻断,hosts不再有效。二进宫实惨,尽快着手转移吧。
jsDelivr的替代方案
遭到DNS污染,基本宣告这个域名面向大众的服务失去价值,因为你无法让每个人学习像极客一样学会修改hosts、使用DoH分流。特别是前端引用这样面向用户的场景,应当更多考虑用户的便利性。以下博主提供几种可行的方案供大家参考,希望对大家有所帮助。
针对恢复访问主要分为服务和本地两种场景,服务场景修改则是替换jsDelivr资源到可访问的资源上,本地场景修改恢复访问的目的是针对海外引用jsDelivr的站点,这是两种不同的操作和目标。

服务·官方子域
这次的污染只针对cdn.jsdelivr.net这一个域名,jsDelivr有很多的CDN赞助商共同支持,每一个服务商都会有自己的专有子域名,通过替换访问资源到其他的二级域名可以恢复访问。但这些CDN普遍速度一般,而且前途并不明朗,建议仅供临时使用。

CloudFlare:test1.jsdelivr.net
CloudFlare:testingcf.jsdelivr.net
Fastly:fastly.jsdelivr.net
GCORE:gcore.jsdelivr.net

服务·反向代理
如果一定要使用jsDelivr的资源的话,可以考虑通过NGINX反代cdn.jsdelivr.net这一个资源库自用。建议通过海外优化线路落地+国内中转缓存,不过要注意添加防盗链以及尽量隐藏反代路径,以防止被其他人滥用。具体配置这里给一个简单的范例,博主不是很推荐这样做,可靠性上很打折扣。

NGINX反代jsDelivr示例

#针对/gh目录的反代
location /gh
{
    proxy_pass https://104.16.86.20;
    proxy_set_header Host cdn.jsdelivr.net;
    proxy_ssl_server_name on;
    proxy_ssl_name cdn.jsdelivr.net;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
}
服务·切换国内静态库
推荐一些国内比较稳定、全面的静态资源库吧,其中不乏完全同步cdnjs内容的,可以逐步将静态资源替换过去。

#字节静态库:cdn.bytedance.com
*完整同步了cdnjs的内容,通过自家CDN加速,缺点是没有海外节点而且链接比较凌乱。

#360静态库:cdn.baomitu.com
*完整同步了cdnjs的内容,并且有提供Google fonts加速,通过自家CDN加速,前段时间启用了AWS CloudFront的海外节点,是目前国内公共CDN做的比较好的了。

#七牛静态库:staticfile.org
*通过自家融合CDN加速,海外节点较少不过也表现尚可,缺点就是担心org域名后续备案维护的问题。
卓越飞翔博客
上一篇: 判断百度蜘蛛偷偷进行301转移权重 给新站提权
下一篇: PHP调用函数:passthru()被禁用 解决方法

相关推荐

留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏