写了个本版块老哥们应该会喜欢玩的脚本:自定义 B 站的 CDN(CCB) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kandaakihito
V2EX    宽带症候群

写了个本版块老哥们应该会喜欢玩的脚本:自定义 B 站的 CDN(CCB)

  •  
  •   kandaakihito 300 天前 5739 次点击
    这是一个创建于 300 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作用:基于网上那些躲开 b 站 pcdn 的脚本修改,支持用户通过视频播放栏下拉框自选节点

    效果预览: https://i.imgurcom/gFdAbep.png

    下载地址: https://greasyfork.org/zh-CN/scripts/527498-custom-cdn-of-bilibili-ccb-%E4%BF%AE%E6%94%B9%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9%E7%9A%84%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE%E6%BA%90?locale_override=1

    其他:当前的节点列表是写死的,后期会改成通过查询子域名的方式自动更新上去。

    动机:喜欢这种流量到处乱跑的感觉(类似的还有把 steam 下载节点改到南美)

    第 1 条附言    299 天前
    破案了姐妹们,折腾了我和另外一个网友一晚上。

    b 站会把热门视频作为热源进行单独缓存,普通的 cdn 节点压根不返回这种热门视频直接 403 !之前我都是拿老视频测试的所以没问题,一旦遇上首页或者热榜的视频就寄。。。我想想该怎么办吧

    另外,我搞这玩意的初衷真的只是为了好玩,为了能自选节点。不提供屏蔽 pcdn 的功能(这块的成熟解决方案很多了不需要我重复提供)。
    第 2 条附言    299 天前
    额。。。强制热门视频就近分发说不成立。。。不管了,睡觉了
    55 条回复    2025-08-22 00:00:56 +08:00
    mooyo
        1
    mooyo  
       300 天前 via iPhone
    b 站的部分 cdn 最近上了鉴权 不是所有视频都能用的
    kandaakihito
        2
    kandaakihito  
    OP
       300 天前
    @mooyo #1 是这样的,测试过程中发现很多 upos-mirror 开头的节点都没法切
    lynn1su
        3
    lynn1su  
       300 天前
    感谢,请问,如果遇到 pcdn 的话可以在节点名字后写上,这是 pcdn 节点吗?
    kandaakihito
        4
    kandaakihito  
    OP
       300 天前
    @PROJECT #3 我目前写进列表的节点都不是 pcdn 节点,pcdn 节点的命名跟乱码一样。

    如果你对 b 站的 cdn 有兴趣,可以简单看一下他们技术团队写的文章: https://www.bilibili.com/opus/923445482234052759
    kandaakihito
        5
    kandaakihito  
    OP
       300 天前
    话说怎么没啥人啊,我看这板块的大伙平时不是很喜欢整些五花八门的东西给运营商上压力么(
    br2049
        6
    br2049  
       300 天前
    工作日哪有那么多摸鱼的(
    wang93wei
        7
    wang93wei  
       300 天前   1
    已经用上
    wang93wei
        8
    wang93wei  
       300 天前
    但其实正常情况下,用本地 CDN 才是最优解。但是存在那种冷门资源会频繁加载的问题。
    kandaakihito
        9
    kandaakihito  
    OP
       300 天前
    @wang93wei #8 是的,现在除非遇到特别逆天的 pcdn 节点,否则都是调度中心分发的节点体验最好。

    BUT !你难道不觉得,狠狠地刷叔叔的云服务的跨网流量很好玩么(
    yyzh
        10
    yyzh  
       300 天前
    upos-sz-mirroraliov.bilivideo.com 这个应该不会是深圳的点吧...
    另外好像发现有两个没能解析出 ip 的域名.废弃了?
    lisonfan
        11
    lisonfan  
       300 天前
    没有切换 audio 的 pcdn
    kandaakihito
        12
    kandaakihito  
    OP
       300 天前
    @yyzh #10 额。。。为什么这个域名解析出来的地址在海外。。。看命名格式应该是深圳才对啊

    具体哪两个域名?我是去 ip138 上面查了子域名,然后随手抓的
    kandaakihito
        13
    kandaakihito  
    OP
       300 天前
    @lisonfan #11 这个脚本实际上已经把音频的源也给替换了
    xiaonian233
        14
    xiaonian233  
       300 天前
    屏蔽 pcdn 和 httpdns ,我感觉效果就挺不错了
    kandaakihito
        15
    kandaakihito  
    OP
       300 天前 via Android   4
    @xiaonian233 其实,我写这玩意是纯粹为了整活。。。

    传输数据,只是从本省或者本市的 CDN 节点读取数据多无趣啊。相反,如果页面上的每一个比特,都是来自于万里之外,跨过了高山和深海,来到了我的电脑上,我会觉得这些数据更加有价值了!

    来这个板块发也是因为觉得,这个板块应该有不少我这样的神人(
    dapang1221
        16
    dapang1221  
       300 天前   2
    笑死,CCB ,老爷爷我来给你踩背来咯(。
    initialsky
        17
    initialsky  
       300 天前 via Android
    @kandaakihito ov 是 oversea 的缩写
    kandaakihito
        18
    kandaakihito  
    OP
       300 天前
    @initialsky what ?有没有 b 站 cdn 命名的规范文档之类的可以查阅
    kandaakihito
        19
    kandaakihito  
    OP
       300 天前
    九了个大敏姐妹们,翻车了。。。

    回出租屋打开批站刷视频,发现不同的网络环境竟然有不同的表现。同一个视频同一个节点,电信可以使用联通就不能用。。。真就玄学啊
    kandaakihito
        20
    kandaakihito  
    OP
       300 天前
    @lisonfan 姐妹,我白天在公司用电信测的,视频和音频源都可以正常修改,但是我现在回出租屋用联通,发现音频怎么切都会自己跳回去。。。emo 了姐妹,白天没看懂你的反馈是我错了
    initialsky
        21
    initialsky  
       299 天前 via Android   1
    @kandaakihito https://rec.danmuji.org/dev/cdn-info/
    还有一部分数据这个文档里没有,但是我以前看到过。过两天帮你找找。
    datou
        22
    datou  
       299 天前   1
    如果只是屏蔽批站的 pcdn ,直接在任何第三方屏蔽广告扩展里面加一条 mcdn.bilivideo.cn 就行了
    wm5d8b
        23
    wm5d8b  
       299 天前 via Android
    不错,两条宽带的用户可以通过指定 cdn 切换线路了
    kandaakihito
        24
    kandaakihito  
    OP
       299 天前
    @wm5d8b #23 问一下,你那边用起来有没有 bug 啊。我之前都是基于我自己的电脑测试的没啥问题,结果昨晚找别人一起测,发现每个人的 bug 都千奇百怪(比如指定节点后 403 、只能切视频不能切音频、有人莫名其妙能跨区等等)
    flytheshrimp
        25
    flytheshrimp  
       299 天前   1
    如果只是讨厌 pcdn ,只需要随便一个广告拦截插件里添加“*.mcdn.bilivideo.cn”规则即可,此时就是 B 站自己的 CDN 加载,由于一个视频只分布在部分 CDN ,因此跨数个省是高概率事件,已经满足了你口中的“喜欢流量乱跑的感觉”。

    另外,“狠狠跨网”并不能给叔叔带来额外成本,反而很容易受到运营商 QoS 影响,劣化使用体验,得不偿失。
    用过广东偏远地市的移动宽带就知道了,大晚上腾讯、网易系游戏下载更新只有一百来 K ,抖音 B 站也是各种缓冲
    家里的电信家宽访问百度,也经常解析到河南移动导致加载奇慢无比甚至打不开。
    跨网绝对不是什么好玩的事情,体会过打王者延迟 100+、百度半天打不开,立马老实。
    initialsky
        26
    initialsky  
       299 天前 via Android   1
    @kandaakihito
    B 站的 cdn 挺复杂的。
    第一种是国内阿里云华为云之类的大厂,这种 cdn 质量最好,不过对非会员限速 10Mbps 。域名里带 upos 。
    第二种是 B 站自建的,这种也行,不过同样有限速。
    上面这两种都是正常的节点,443 端口。
    initialsky
        27
    initialsky  
       299 天前 via Android   1
    第三种是大户的 pcdn 节点,域名格式是 xxx.mcdn.bilivido.cn
    端口号一般是 4483 或者 8082
    第四种是迅雷的散户 pcdn ,域名格式是 xxx.vxx.szbdyd.com ,端口号随机
    遇到晚高峰加跨网这种节点没法用,能卡死你
    initialsky
        28
    initialsky  
       299 天前 via Android   1
    第五种是海外专属节点 Akamai
    第六种是免流专属节点
    第七种是客户端之间 p2p
    这些在网页版不多见,没研究过
    initialsky
        29
    initialsky  
       299 天前 via Android   1
    234 都可以替换为 1 ,反过来不行。Akamai 的链接独立存在不能与其它域名替换。
    initialsky
        30
    initialsky  
       299 天前 via Android   1
    对于国内热门视频,B 站优先使用第三种或第四种分发。国内冷门视频,会使用第一种第二种。
    海外用户得到的链接是 Akamai 或是域名里带 ov 的节点。
    海外的 cdn 要境内回源,可能会卡
    yyzh
        31
    yyzh  
       299 天前 via Android   1
    @initialsky b 现在上 cf 了也能试一下 upos-sz-mirrorcf1ov.bilivideo.com
    海外的话至少香港区域全丢自己的服务器 103.151.150-151.XXX 没走其他 cdn 了。不过速度一如既往的爆卡就是
    kandaakihito
        32
    kandaakihito  
    OP
       299 天前 via Android
    @initialsky 我喜欢你,我喜欢你,我超(cào)喜欢你。

    结合我平时观察视频源的经验判断,你的总结很精确。我只见过 12345 节点,其他的没见过。

    但是有个很好玩的事情,那就是:
    hz - akamai 的那个节点是只有海外 ip 能访问,国内切不过去;
    但是 hk - eq 和 sz - ov 这两个海外节点,国内 ip 也能直接切过去。

    综合来说,我是觉得 hz - akamai 这个节点质量最好。21 年有段时间 b 站乱搞,国内节点都非常非常炸,当时我甚至挂着梯子刷 b 站。
    initialsky
        33
    initialsky  
       299 天前 via Android   1
    @kandaakihito B 站的海外节点普遍要回源,要是热门视频有预热还好,冷门视频应该需要从上海回源,不是很快。
    除了海外和免流域名以外,其它的非 pcdn 域名都有 ipv6 地址。ipv6 目前体验还行。
    initialsky
        34
    initialsky  
       299 天前 via Android   1
    @kandaakihito 之前写过一篇相当长的文章,里面有我自己给 B 站跑 pcdn(也就是上面类型 4)的数据统计。
    https://www.initialsky.com/2025/01/10/一刀切的 pcdn ,究竟错在哪里/
    kandaakihito
        35
    kandaakihito  
    OP
       299 天前 via Android
    @initialsky 非常好博客,使我 pcdn 旋转。

    顺带说个我最近(一年多这样)观察到的现象吧:批站的调度策略,貌似从原来的绝对距离优先,变成了同运营商优先。
    我现在人在深圳,经常会被分配到天津甚至东北的同运营商节点。
    wm5d8b
        36
    wm5d8b  
       298 天前   1
    @kandaakihito #24 用了 2 天没啥问题,还解决了 mcdn 慢的问题
    kandaakihito
        37
    kandaakihito  
    OP
       298 天前
    更新了一下后端服务,现在是通过查询子域名的方式更新,不需要我手动填一堆节点上去了。

    另外,找了几个同学测试,发现有的人能正常使用有人不行,最后发现是 dns 的问题,开着 clash 就 ok 。

    题外话,我那个 api 服务部署在精神母国(稻妻),在其他地方用没问题,但是在福建根本打咩,列表都加载不出来。。。
    kandaakihito
        38
    kandaakihito  
    OP
       298 天前
    修复了 bug ,并且美化了一下,节点也改成动态加载的了,现在是稳定版了(应该吧):


    wuvvu
        39
    wuvvu  
       298 天前   1
    好用喵~
    Mixx
        40
    Mixx  
       297 天前   1
    感谢 OP ,之前找了一堆的插件就是想要自由更换的节点。这个就比较直观了,找当地的延迟应该都不高
    jzl2163
        41
    jzl2163  
       297 天前
    感谢,之前在用 https://greasyfork.org/zh-CN/scripts/500213-bilibili-video-cdn-switcher 这个,但是切换有些麻烦。这下直观多了。
    另外我总觉得哔哩哔哩自建的 CDN 效果要比带 upos 的 CDN 速度要快得多,尤其是对应地区对应运营商前缀的非常快(北京联通网络下)。
    kandaakihito
        42
    kandaakihito  
    OP
       297 天前 via Android
    @jzl2163 我也这么觉得。体验上大致是:hz - akamai > 地区自建节点(比如 cn - cd - cm) > gotcha > sz 开头的几个节点 > 乱码 mcdn
    anonymity
        43
    anonymity  
       296 天前   1
    我趣 CCB 领域大神
    flytheshrimp
        44
    flytheshrimp  
       293 天前   3
    @kandaakihito B 站的 mcdn 实际并不是乱码,它直接把 pcdn 服务器的 IP 地址编进了网址前缀中,确保当*.mcdn.bilivideo.cn 被 DNS 拦截时,可以绕过 DNS 查询,直接从网址里得知 IP 并照常连接。
    格式是前后各一个 xy ,中间夹 IP 地址,若 v4v6 同时有,则中间还会多一个 xy 。
    v4 用 x 代替点,v6 用 y 代替冒号,前 v4 后 v6(如果有 v6)
    所以你会发现,简单使用路由器拦截*.mcdn.bilivideo.cn 的 DNS 查询无效
    必须使用拦广告的插件才行。
    Fanshi233
        45
    Fanshi233  
       290 天前   1
    你难道就是大恶人吗草,不过之前确实被 b 站的 pcdn 节点恶心到了
    383394544
        46
    383394544  
       282 天前   2
    @flytheshrimp 不能直接拦截 *.mcdn.bilivideo.cn ,得让 DNS 返回 127.0.0.1 ,然后网页发现连接不上就会 fallback 到 Bilibili 自建 CDN 上。
    amamiya
        47
    amamiya  
       278 天前
    kandaakihito
        48
    kandaakihito  
    OP
       278 天前   1
    @amamiya #47 按钮弹不出来是吧,因为在 292 行也有路径匹配(

    我已经把路径添加进去并发布了,你更新一下就中:

    Hantong
        49
    Hantong  
       219 天前   1
    可以看看我的总结,和牢 B 的 PCDN 斗争久了经验还是有的

    https://github.com/the1812/Bilibili-Evolved/issues/3234#issuecomment-1504764774
    daisyfloor
        50
    daisyfloor  
       204 天前
    @initialsky 非常好的博客文章,顺腾摸瓜看到了 2020 年那篇讲 youtube 的也是大开眼界,谢谢作者。

    希望你的网站能提供 feed 方便 rss 订阅。再次感谢~
    daisyfloor
        51
    daisyfloor  
       204 天前
    @initialsky 说一个变态的体验:我最近在用本地用 docker 运行 metube 下载视频玩。我本地开了代理,选了几个 b 站视频,发现如果是设置系统代理,基本上,都返回的是 bilivideo.com:443 ,如果是开了 tun 透明代理,大部分基本上返回的都是 xxxxxxxxxxxxxx.mcdn.bilivideo.cn:8082 这种

    不知道为啥。
    Hantong
        52
    Hantong  
       203 天前
    @daisyfloor tun 走 v4 了吧
    daisyfloor
        53
    daisyfloor  
       203 天前
    @Hantong 哦?! 还有这种机制啊,我不清楚。。受教了。。。
    ids93216
        54
    ids93216  
       117 天前
    台湾用户永远只能用有问题的 akamai 节点,用这个脚本切换到香港后变得非常流畅了
    kandaakihito
        55
    kandaakihito  
    OP
       117 天前
    @ids93216 我用梯子的体验是,Akamai 节点比香港的要好很多,起码不限速,跑个 200Mbps 的下行很轻松。

    之前上大学的时候精力充沛,经常开五倍速看视频,基本只有 akamai 的节点不卡。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2886 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 14:14 PVG 22:14 LAX 06:14 JFK 09:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86