Skip to content

使用 cloudflare service worker 作为解析服务器

LoveSy edited this page Jan 1, 2021 · 4 revisions

注意

该方法很看运气,请先筛选ip查看自己网络环境是否符合条件。注意即使符合条件,该方法也不是特别稳定,变换网络环境就可能不适用。

TL;DR

使用 cloudflare service worker 反代 https://api.bilibili.com/pgc/player/api/playurl 并指定港澳台 ip 即可

原理

因为 anycast 的特性,可以使用任意一个使用 cloudflare cdn 的域名连接到任意一个 anycast 的 ip ,而 service worker 又是在边缘节点计算的,所以如果使用港澳台 cloudflare 节点 ip 访问 service worker 就可以由 cloudflare 的港澳台节点完成反代,达到解锁的效果

筛选 ip

可以参考各种 cloudflare 自选 ip 的文章,找到一些港澳台的 ip ,访问 http:///ip/cdn-cgi/trace ,观察 colo 项,如果结果为你选择的 ip 所在 cloudflare 数据中心的缩写 (如 HKG/TPE ) 即为找到了合适的 ip ,请重复此步骤直到找到合适的 ip

注: 如果多次尝试后仍无法获得可用 ip 可能是你所在的 ip 被 cloudflare 认为不应解析到此处,遇到这种情况可以放弃了
也许可以试试 worker 反代套 worker 反代或是 warp
根据测试,中国移动可以访问 HKG 但无法访问 TPE ,其它运营商的情况欢迎补充

搭建反代

网上有各种现成的方案,反代 https://api.bilibili.com/pgc/player/api/playurl 即可,笔者用的是 booster.js ,稍微修改增加了 "colo 不正确时返回 403" 等功能,因修改过于简单就不放上来了

设置解析

有多种方案可选,推荐程度依次降低
如果你运气好直接解析域名就到了 cloudflare 港澳台节点可以跳过这个步骤

修改 dns 解析

此类方法有 "设置 hosts " "设置 dnsmasq 规则" " v2ray 配置 DnsObject 中的 hosts 项" 等,请自行查阅相关文档,把自己的work域名解析到刚刚获取到的ip。

第三方 cloudflare partner 面板

笔者个人并不是十分推荐这种方式,一是第三方显然没有 cloudflare 官方来的可信,二是长时间使用可能被封号
不过好处也是显而易见的,任何人解析域名都可以解析到这个地址,如果上面有网站的话国内用户访问起来显然会快一些
请自行查阅相关教程

结语

这样应该就可以看了
感谢酷安用户 3e4c..82c1 的文章提供的思路
也感谢二先生?帮笔者进行测试