解决 Xbox 在国内下载速度慢
今年入手了 Xbox Series X,发现 Xbox 在国内下载速度非常慢,无奈之下,发现遇到这个问题的玩家还不在少数,最终我花了一点时间用 Node.js 写了一个 xbox-speed-test 缓解下载速度慢的问题,它可以找到对你来说最快的 CDN 节点。
前置要求
使用本文的方法需要有一定的编程基础,且不同地区不同运营商的用户使用效果会有差距,不一定会立竿见影的效果。对于不会写代码的用户我更推荐你直接向微软客服反馈 Xbox 国行下载游戏速度非常慢,反馈的人多了微软来解决这个问题才是最好的。
要使用 xbox-speed-test,先确认以下要求是否满足:
- 系统是 Mac 或者 Linux(Windows 可以在 WSL 环境运行)
- 确保 Node.js 和 curl 在命令行可用
使用方法
安装 xbox-speed-test:
git clone https://github.com/isbasex/xbox-speed-test.git
cd xbox-speed-test
测试国外节点速度 (assets1.xboxlive.com
):
node index.js
测试国内节点速度 (assets1.xboxlive.cn
):
isCN=1 node index.js
测试结束后会输出各节点的速度排序表:
拿到 IP 后,在局域网内修改 DNS 记录,让 Xbox 下载强制走这个最快的 CDN 节点。
如果你用了软路由或者电脑上有 Surge、Clash、Dnsmasq 这类软件,可以很方便的修改 DNS 记录,我用 Surge 是这样配置的:
第一步:在 Surge 配置文件增加以下配置
[Host]
assets*.xboxlive.com = 23.32.241.147 // IP 指定为测试结果最快的那个
assets*.xboxlive.cn = 59.63.235.26 // 注意 .com 和 .cn 不要都指向一个 IP
dlassets.xboxlive.cn = 59.63.235.26
注意上面的配置文件我用了通配符,因为 surge 支持这种语法,对于普通 Hosts 文件这种不支持通配符语法的,你需要改成 assets1.xboxlive.com 23.32.241.147
这样的格式
第二步:在 Xbox 网络设置里选择手动,将网关地址指定为 Surge 所在电脑的 IP 地址,DNS 指定为 192.18.0.2
,网络设置好之后,将 Surge 开启增强模式就可以让 Xbox 的所有请求通过 Surge 接管。
为了确保 Xbox 下载游戏不浪费代理流量,我额外增加了如下 Surge 代理规则:
DOMAIN,assets1.xboxlive.com,DIRECT
DOMAIN,assets2.xboxlive.com,DIRECT
DOMAIN,assets3.xboxlive.com,DIRECT
详细的 Surge 使用方法可以参考:Surge for Mac之网关模式的妙用
- 根据我这段时间的体验,发现只有少部分游戏下载会走 assets*.xboxlive.cn 国内节点,而大部分游戏会走 assets*.xboxlive.com 国际节点
- 不能给 .com 域名指定 .cn 的 ip,否则会 404
- 对于使用 Windows 的用户,你可以尝试在本地修改 Hosts 文件
增删 CDN 节点列表
xbox-speed-test 这个仓库里的 cdn.list 文件内置了世界各地的 Xbox CDN 节点,这些节点随着时间的推移可能会有部分失效,你可以自行通过 dig 命令配合各国的公共 DNS 查找最新的有效 CDN 节点,也可以删除无效和特别慢的节点。
感谢
结束语
相比 PS 和 Steam,微软在 CDN 方面做的真不够好,从搜索到的信息来看好几年前就是这样。现在依旧没有改观,甚至在恶化。当两个产品整体差不多的时候。体验性细节就很重要了。
希望后续微软能尽早解决下载速度这个问题。
本文原载于:baiyun.me