小东西
浮光 (The History) · …◁◁ ▷ ▷▷
原站音乐由外部服务提供,音源尚未迁移。

使用Cloudflare Workers反代Pixiv图片

简介

虽然是一个烂大街的技术。Workers每天提供免费的 10万次请求而不计算流量,个人完全是够够够用了。

众所周知,pixiv的图片伺服器网域为 i.pximg.net,因为有盗连保护,只要 Referer是空值或不是来自 pixiv的网域就会返回 403。

反向这个代理只需要将 i.pximg.net更换为搭建的反向代理 pixiv.anyfan.top就可以使用,

例如:

实现步骤

域名验证

登陆cloudflare,之后把你的域名使用Cloudflare解析(这个过程我觉得没必要详细讲了,如果嫌国内解析慢的,可以在通过验证后在转移到国内)

创建Workers

打开你的域名管理页面,点击上面的 Workers,再点击 管理 Workers,进入Workers管理页面。

点击 创建 Workers进入脚本编辑器,删除掉里面所有的代码,粘贴下面的代码进去。

addEventListener("fetch", event => {
  let url = new URL(event.request.url);
  url.hostname = "i.pximg.net";

  let request = new Request(url, event.request);
  event.respondWith(
    fetch(request, {
      headers: {
        'Referer': 'https://www.pixiv.net/'
      }
    })
  );
});

注:左上脚的 pixiv.a-f.workers.dev为你设置的项目域名

Workers配置路由

再次回到域名管理页面,找到 Workers,再点击 添加路由,参考如图。

DNS解析

配置 dns解析,参考如图。 如果你的解析不在cloudflare,像我解析设置在阿里云,没有像cloudflare一样页面缓存,所以还要将此解析指定到cloudflare。参考下图。(当然你也可以像上一步一样直接设置 CHAME解析,但是访问相同图片可能会浪费请求次数。) 注:kay.ns.cloudflare.com为cloudflare的DNS解析服务器,可能有所不同。可以在域名管理页查看。

问题:在设置 CDN时候,众所周知 cloudflare除了在国内都挺快的,于是我就想设置国内的 CDN缓存,但是图片总是返回 ERR_CONTENT_LENGTH_MISMATCH,很是懊恼头秃,可能是因为2级缓存的原因,目前没有较好的解决方法。

最后修改:© 允许规范转载

5 条评论

  1. lht 中国 · 湖北 Chrome 121.0.0.0 Android 10 手机

    佬,把你给的代码直接复制过去报错了是怎么回事? Uncaught SyntaxError : Unexpected token '}' at worker . js :14( Code :10021)

  2. anyfan 中国 · 江苏 · 扬州 Edge 122.0.0.0 Windows 10 / 11 电脑回复 lht

    确定复制正确了?一共13行代码,怎么会在14行报错。还有就是国内阻断了workers.dev域名,现在是不能直接访问的。

  3. lht 中国 · 湖北 Chrome 121.0.0.0 Android 10 手机回复 anyfan

    用的是手机,直接复制过去的,我也不清楚为什么会有第14行,所以把第14行删了就行了吗?

  4. Andy666 Safari 15.6.1 macOS 10.15.6 电脑

    请问如何才能反代pixiv整个网站?

  5. anyfan 中国 · 江苏 · 淮安 Safari 16.1 macOS 10.15.7 电脑回复 Andy666

    我记得GitHub上有很多利用cloudflare workers的项目,其中就包括proxy。不过目前workers.dev在大陆基本处于不可访问的状态。如果您仅仅是自用学习的话可以考虑使用第三方app。

发表评论

评论审核后显示,邮箱不会公开。