自建哔哩漫游教程


仅作参考,不作任何保障也无任何解答

腾讯云CDN

由于最近还是有些看B站番剧的需求,但国内阉割,只能看港澳台和东南亚地区的了,故又开始鼓捣Biliroaming这个项目以及低成本的稳定使用方式,探索出了一种玩法,仅作参考。

优点

  1. 成本较为低廉(开销仅在腾讯云CDN的请求费用+流量费用+你的域名费用);

  2. 部署一次之后就不需要太多维护(个人使用下来腾讯云的CDN IP没咋变过,并且这里是15年有效期的证书,基本上一次性部署能使用很久);

  3. 支持多地区(只要腾讯云支持就可以,理论来说你甚至可以回国反代);

缺点

  1. 需要腾讯云实名(我因为有个拿来续备案域名的轻量云,所以我无所谓,但可能有人在意?);
  2. 依赖于腾讯云的CDN,腾讯云本身在国内就是弱势的市场,不好说会不会跑(就算跑了用阿里云的应该也行吧);

前置要求

  1. 一个实名了的腾讯云CDN账号(如果有其他支持稳定的香港、台湾、东南亚IP的CDN厂商也可);
  2. example.com: 一个属于你且托管至Cloudflare的域名;
  3. proxy1.example.com: 用于反代api.bilibili.com的域名(即反代B站港澳台视频流的域名);
  4. proxy2.example.com: 用于反代app.bilibili.com的域名(即反代B站港澳台搜索结果的域名);
  5. proxy3.example.com: 用于反代app.biliintl.com的域名(即反代B站东南亚搜索结果和视频流的域名);
  6. (非必须)main.example.com:用于biliroaming-go的后端主域名;

1. 申请目标域名的证书

由于Cloudflare针对其平台上管理的域名提供15年的证书,为了方便我选择了Cloudflare

三个域名都需要申请证书(Cloudflare的免费证书不支持二级域名,建议创建证书时将三个域名都添加到主机名里,这样到时候腾讯云的证书就只需要上传这一个就行)。

创建证书

保存生成证书和密钥,将其上传至腾讯云的证书处即可。

腾讯云证书上传完成

2. 创建腾讯云CDN的反代资源

访问腾讯云CDN页面,先添加你的三个反代域名,认证域名属于你之后再进行资源添加,具体如下

源站类型:自有源站
回源协议:HTTPS
源站地址:api.bilibili.com/app.bilibili.com/app.biliintl.com	
回源HOST:api.bilibili.com/app.bilibili.com/app.biliintl.com

参考如下三图为三个域名的反代资源配置

proxy1.example.com

proxy2.example.com

proxy3.example.com

创建服务之后去给每个服务开启HTTPS,腾讯云部分的操作便已完成。

腾讯云HTTPS

3. Cloudflare创建反代

寻找你需要地区的腾讯云CDN IP(此处不提供寻找方法,这种应该挺好找的),然后将你对应的域名指向该IP。

开启小云朵,这样才能正常使用Cloudflare颁发的15年证书。图片示例为台湾IP和亚太新加坡IP+开启小云朵

cloudflare

4. 配置自己的客户端

我个人是用的biliroaming-go-server这个项目作为后端转发,理论来说你直接在漫游客户端在香港/台湾填proxy1.example.com、泰国填proxy3.example.com也可?(但这样的话搜索就不行了,我想了想还是自己搭个后端吧,反正白嫖了台华为云新加坡10年😋)

biliroaming-go-server-config

Cloudfront CDN

在我经过多次测试之后,总算弄出来一个Cloudfront能用的配置模板了。

优点

  1. 相较于腾讯云CDN是免费的(每月1T的出流量,漫游自用的话入流量很少,这部分费用就可以几乎等于0)
  2. 节点多。AmazonTencent两家的网络部署孰优孰劣大火应该都有数。
  3. 自由度较高,可配置项多。

缺点

  1. 由于是Anycast的IP,所以自定义IP的时候需要稍微多花些精力筛下。https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr?ip=测试IP的页面结果如果显示是目标地区(香港/台湾/新加坡)则理论来说就大概率可用,Cloudfront的部分IP是会被哔哩哔哩的IP库丢进美国IP里的。
  2. 配置较为繁琐,我研究了半天才研究出来能用的一套规则。

前置要求

  1. 一个过了验证的Amazon账号(要验卡才有每个月1T的免费流量)。
  2. 一个属于自己的长期域名。
  3. 你自己有能力去筛选出Cloudfront众多IP中你需要目标地区的IP。

1. 在Cloudfront上申请目标域名的证书

Cloudfront不支持Cloudflare自签的15年证书,所以个人建议是就直接把你的子域名丢给他做验证去生成证书,能够自动续期的(我那个是去年10月申请的,只要你不把那个验证的cname改了,理论上Amazon会自动续期的)

可续期证书

亚马逊的证书一步步生成就是了,这里不再赘述。

2. 创建分配Cloudfront的资源

懒得打字了,就按我的图配置即可(api.bilibili.com/app.bilibili.com/app.biliintl.com都是一样的,把图中的api.bilibili.com改成你需要反代的域名即可)。核心就是缓存用CachingDisabled,源请求用AllViewerExceptHostHeader,这是我试出来能正常使用的搭配。

创建cloudfront资源

3. 域名指定IP

记得把你目标地区的自定义域名添加到目标地区对应Cloudfront资源的备用域名中,然后比如hk.bili.example.com指向你自己挑选出的香港IP即可。这是我的示例,参考即可。

我的dns

我个人挑选IP流程一般是比如*.tpe52.r.cloudfront.net是台北的cloudfront节点关联域名,我就去搜这个泛域名的关联IP,然后关联IP先去用https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr?ip=关联IP看看哔哩哔哩的IP库上是不是正常认为是台湾的,再丢解析里去测试,如果正常那就没问题。

4. 配置自己的客户端

我个人是用的biliroaming-go-server这个项目作为后端转发,理论来说你直接在漫游客户端在香港/台湾填hkcft.bili.example.com/twcft.bili.example.com、泰国填thcft.bili.example.com也可?(但这样的话搜索就不行了,我想了想还是自己搭个后端吧,反正白嫖了台华为云新加坡10年😋)

biliroaming-go-server-config

效果展示

使用为他人修改的8.14.0粉色国内版Bilibili+1.23.3自己编译去黑名单版的BiliroamingX,港台泰解析服务器均为main.example.com

客户端_港区番剧观看

客户端_泰区番剧观看

客户端_港区番剧搜索

客户端_泰区番剧搜索


文章作者: xieshang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 xieshang !
评论
  目录