前往
大廳
主題

告訴你為什麼有時候B站很卡

fmnijk | 2023-09-23 17:40:54 | 巴幣 0 | 人氣 1011

*20231224更:
這方法好像被官方修復了XDD,貌似已失效,只能希望B站官方快點把這個CDN淘汰掉吧,這個CDN應該是比較老了,證據就是這個CDN也不支持ipv6,其他B站CDN都支持,應該是真的比較舊

加速方法懶人包:
用cmd去ping upos-sz-mirroraliov.bilivideo.com 取得sz的ip
用cmd去ping upos-hz-mirrorakam.akamaized.net 取得hz的ip
在host文件加上
upos-hz-mirrorakam.akamaized.net 剛剛ping到的sz的ip
upos-sz-mirroraliov.bilivideo.com 剛剛ping到的hz的ip

就是把hz指到sz的ip 把sz指到hz的ip 互指的概念
ping之前可以把DNS改成Google DNS並清除DNS快取

=========以下正文=========

B站的CDN網路域名有數種:
    upos-hz-mirrorakam.akamaized.net (最快)
    upos-sz-mirroraliov.bilivideo.com (最慢)

    cn-hk-eq-01-*.bilivideo.com (中等)
    例如 cn-hk-eq-01-09.bilivideo.com

    *.mcdn.bilivideo.cn (大陸用的,海外不需要)
    例如xy60x28x212x11xy.mcdn.bilivideo.cn

B站忽快忽慢其中一個原因是連到不同的CDN
CDN快不快不能用ping測試
因為ping測試的是只有延遲

要測試網速需要用yt-dlp看下載速度如何,加入--verbose參數可以看連到哪個CDN
例如我這邊測試:
upos-hz-mirrorakam.akamaized.net 延遲4ms 下載速度15MiB/s
upos-sz-mirroraliov.bilivideo.com 延遲6ms 下載速度1MiB/s
cn-hk-eq-01-09.bilivideo.com 延遲55ms 下載速度7MiB/s
xy60x28x212x11xy.mcdn.bilivideo.cn 延遲60ms 下載速度7MiB/s

可以看到upos-sz-mirroraliov.bilivideo.com雖然ping只有6ms 但下載速度只有1MiB/s
原因就在這裡,其他的CDN都足以應付播放影片的需求
這個CDN卻有可能播放到一半轉圈圈

要解決這個問題可以修改Host文件,但我這邊不是很建議一般人操作
方法是Host文件將最慢那個CDN導向到最快那個的ip

操作如下:
cmd輸入ping upos-hz-mirrorakam.akamaized.net
複製解析到的ip 有可能是ipv6或ipv4 都可以
修改Host文件 添加一行:
    貼上解析到的ip upos-sz-mirroraliov.bilivideo.com
範例(這是東京節點):
    2600:1417:45::17c2:7370 upos-sz-mirroraliov.bilivideo.com

用這個網站可以知道節點在哪個地理位置

也可以用這個網站可以找出附近的節點
但它的列表不完全,沒辦法找到最近的,但也堪用了
個人認為把DNS改成Google DNS再用ping指令取得ip的方式更好

只要改upos-sz-mirroraliov.bilivideo.com就好了
其他的可以不要改,保持最小侵害原則,因為修改Host文件有利有弊
主要是upos-sz-mirroraliov.bilivideo.com實在是太慢了,才有必要修改它

改了可以讓速度變快一些,但B站還會對影片做限流的動作
不同CDN限流的影片不同,upos-hz也會發生限流的情況
此時影片加載的網速會在幾秒內從15MiB/s下降到1MiB/s

所以如果要所有影片都享有最快的連線速度
不只要改Host文件把CDN連線導向到最快的節點
還要在發生限流情況時,重新解析網址以連線到其他不同的CDN
但有點麻煩,經測試發現另一種更簡單的方法
改host把hz指到sz 把sz指到hz 可以避免限流 且兩個都變很快
(互指的概念,Works like a charm)

創作回應

相關創作

更多創作