解决imgur图片无法加载的问题
为什么我imgur的图片加载不出来?
简单来说就是黑IP了,因为imgur在大陆是无法访问的,我们需要使用科学的方法来访问,这时候你节点的IP可能就在imgur的黑名单里面,导致没办法加载,具体表现为访问i.imgur.com
(图片直链)返回429
,访问imgur.com
会返回
1 | { |
那怎么办呢?
其实最简单的方法就是换一个节点。
但是,我发现,换了一圈我现有的(包括self-hosted)都不能正常访问!!!
有网友说,很多数据中心的IP进了imgur的黑名单了,恰巧这时我也不想再找了,于是就想着自己折腾折腾,想一个方法。
灵感 1
很多网站在大陆访问比较慢,或者是被屏蔽了,这时候有一些人会做一些公益的镜像站,比如Hugging Face的镜像站HF-Mirror。
于是我就想,有没有一个imgur的镜像站呢?
答:没找到。
但是,有一些提供图片镜像缓存服务的网站,他们能够缓存图床的直链,并转发给用户。具体的可以参考这篇。
这里以https://img.noobzone.ru/getimg.php?url=
为例,把要访问的imgur图片链接直接加在网址后面(作为参数传入)即可访问,且不需要科学的方法。
例如:https://img.noobzone.ru/getimg.php?url=https://i.imgur.com/TbWS0cZ.png
灵感 2
我想到了Header Editor (google.com),这个浏览器插件可以重定向所有满足某种条件的请求。
于是写一个正则匹配i.imgur.com
为域名的URL,重定向至https://img.noobzone.ru/getimg.php?url=
即可。
更新:在热心网友的提醒下,发现该图片缓存网站似乎开启了防盗链,我们再创建一个规则,将请求头里面的referer
去掉就可以正常获取图片了。
安装插件后,可以参考我写的填,或者直接从
1 | https://gist.githubusercontent.com/shiquda/fde8daca5c45a829d063283ba41bcca4/raw/a7b80eeb251c5175b6e4e3d2fb6f497e9df7c0f9/header-editor-imgur-config |
导入。
导入后开启规则应该就能生效了。
局限
这里只支持在浏览器中访问,如果需要在其他软件中访问,可能需要一些其他分流软件,这里不再探讨。感兴趣的读者可以自行探索实现。
参考
- 图片防盗链最终解决方案,超级简单实用的方法 | 爱淘数字资源馆 (1itao.com)
- imgur办掉了所有的乌龟壳ip访问图片-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz! (hostloc.com)
感谢
“游客”网友的补充解决方案。