TGFC俱乐部>>游戏业界综合讨论区>>
- 刷新/显图/登录/注册/WEB
标题:X1下载经常停止的【非官方】解决方法
时间:18-01-09 18:30
作者:DeLaJSR

可能有人记得,我是13年做Xbox(以及14年做PSN)国内CDN下载测速和锁定那个破程序的人,去年Xbox One的成就国内不能正常显示的具体原因也是我反馈给微软的

下面说的是一些背景,没兴趣看的可以跳到后面看(不知)所谓的教程
说起来,由于微软和索尼的国内CDN部署越来越成熟(唯一的例外是PS系的系统更新域名没有国内CDN,所以你们下游戏快系统更新慢),我那个小程序已经没有存在价值了(那时候还只是有概率获取国内CDN,所以需要锁住提速),但近期Xbox One下载很容易出现下载停止的情况,而之前X1X出来的引发的购买小高潮让这个问题放大很多,因此就想着找找原因,正好因为买了第五第六台X1(X),所以有富余的机器可以拿到单位,这里能让我进行测试的装备更齐全些,也没有家里娃缠着

由于并没有访问系统内部的权限,无法查看系统内部日志来判断为何停止,我只能在路由器上截取X1的网络包来进行分析,就是个最笨的黑盒测试,发现情况如下

  • 给X1提供下载的域名已经不是几年前的dlassets.xboxlive.com,而是变成了assets1.xboxlive.com和assets2.xboxlive.com(360机器都收起来了,变没变我这次没研究)
  • 下载同一个内容时这两个域名都会访问到(域名不同但请求路径一样),我试了下用分别用两者查出来的IP地址替代对方是不会有任何影响的,微软分开可能是为了提高CDN的利用率
  • 新的域名用国内DNS解析出的CDN服务器IP地址都是中国的,我查到的有十几二十个,和当年我找到的那些基本没有重合,估计是CDN提供商有调整
  • X1下载类似网际快车是多线程的,但每个线程大小是固定的都是680KB的块,因此会频繁产生新线程请求(56Mb/s或7MB/s的网速就能一秒能下完十个块),同理DNS解析域名的请求频率也高得多
  • CDN服务器上每个X1游戏/DLC的内容文件都是单个文件,你更新时只是从新版单个文件中下载你所需的修补/追加内容对应的一个个680KB块,覆盖和追加到旧版本文件内或者末端
  • 当你下载一个官方已经更新过的游戏时,如果监听你会发现是下载会从文件尾部某段(即新内容)开始,因为要保证游戏下载一部分就可以运行
  • 虽然CDN上只需要提供最新版的内容文件(保证下载和更新永远是最新的),但是我发现战争机器4上一个老版本的下载路径依旧有效,手里路径样本太少不知道是不是个例


但是从抓包里发现下载停止的原因太困难(除了下载内容,其他验证等基本都是加密信息),因此我决定用老程序的锁定方法,把两个下载域名锁定到一个IP上,然后进行了大概一周的下载实测,发现情况如下

  • 把域名锁定到测速出最快的那几个IP上时,下载若干体积不一冷门热门游戏,再未出现下载停止的情况
  • 下载速度比不锁时可能略慢(不锁时你可能从3个IP上同时下载,锁了只从1个上下载),但速度波动较小比较稳定


测速慢的IP我没实验,因为停止有偶然性,而且下载实测的时间成本太高,但是通过以上的结论应该可以看出来,下载停止可能是某些CDN服务器IP所致,因为如果是验证等其他环节出问题,锁定下载IP后应该还会出现停止的现象,而实际中并没有

总结
其实这个问题的最终解决方法是微软核查中国的CDN服务提供商,根据系统日志发现是哪个IP有问题应该很容易,然后让CDN提供商调整即可,但是目前不知道官方什么时候才能解决,因此我的破程序在这种情况下又有了价值,这一个多月我又把程序改了两版(不好意思上面的实验其实十一月底就进行完毕了,改程序和写教程拖了太久),和当年的比变化如下

  • 适配了微软最新调整过的下载服务域名
  • 除了生成dnsmasq配置,现在还能够生成Merlin系统的命令,弥补后者没办法在Web管理界面上定义dnsmasq设置的缺陷(我没研究过加插件能不能啊),不过Merlin系统这个设置存不住重启路由器后需要重做
  • 多个域名生成的dnsmasq配置只有一行,降低了复杂度,节约了NVRAM空间


受下载停止困扰的朋友们可以试试,下面是教程,这次抱歉时间紧没加注释,如果你以前用过我旧版的程序可能理解容易些

不明不白的教程如下
下载程序包下载,解压
链接:https://pan.baidu.com/s/1mjtzqeG 密码:ur3h

进解压开的文件夹,根据你是联通还是电信运行unicom.bat或者telecom.bat(分别预设了一些下载IP,也可以不必拘泥跨运营商执行)

比如开始运行unicom.bat


测试进行中,发现某个IP下载速度达到了34000KB/s,大约272Mb/s


如果你是番茄或者DD-WRT路由,测试完毕后,打开文件夹内“dnsmasq配置[运营商].txt”文件,根据注释显示的速度复制对应那一行到番茄或者DD-WRT的dnsmasq配置框中保存和应用即可,注意不要复制#井号开头的部分,然后直接看最后一步运行testdns.bat


如果你是Merlin系统,稍微麻烦一些,先在路由器管理界面确认Telnet是否打开(左边栏选“系统管理”->右边“系统设置”选项卡->下拉到“其他”部分->找到“启动telnet”,勾选“是”->点击“应用本页面配置”)

然后启动文件夹内的putty,做两件事,1、输入路由器地址2、点选telnet,然后点击open


用户名输入admin,密码输入路由器密码,就可以进入到命令提示符下


这时候打开“merlin命令[运营商].txt”,根据注释显示的速度复制对应那一行,注意不要复制#井号开头的部分


回到putty窗口,点击右键粘贴内容,并且回车执行(如果没自动粘贴回车)


运行文件夹内的testdns.bat,如果输出结果和你锁定的一致就说明生效了


当然,你电脑使用和配置的路由器得跟X1用的是同一个才行23333

[ 本帖最后由 DeLaJSR 于 2018-1-11 09:15 编辑 ]
附件:: [您所在的用户组无法下载或查看附件]


评分记录(+605/-0=605):dusk(+3),bhlaowang(+3),fctg(+3),Nemo_theCaptain(+1),cgyldn(+2),就一中年人(+1),j2j(+3),19861201(+3),BeastMa(+10),BeastMa(+576)


这些回帖最骚
===================
DeLaJSR 骚(2) 引用
我这个程序只能解决下载的问题,验证的问题解决不了

不过如果你其他游戏下载没问题,那么验证方面出问题的可能性不大,可以试试这个程序

当然你得有DD-WRT/番茄/Merlin系统的路由器,此外,如果测出来一个IP不行可能还需要更换实验





回复列表 (45)
#2 十二少 2018-1-9 18:38
posted by wap, platform: Android
谢谢楼主,下载停止实在是闹心,目前几个游戏磕磕绊绊都下载完了,只有个生化危机4完全没有下载,这个用你的方法可行吗?

===================
#3 hugang 2018-1-9 18:39
技术帝 :企鹅拍手带字幕: :企鹅拍手带字幕:

===================
#4 十二少 2018-1-9 18:40
posted by wap, platform: Android
就是图里这种情况,完全没有下载。
附件:: [您所在的用户组无法下载或查看附件]


===================
#5 论坛之星 2018-1-9 19:00
佩服:企鹅拍手带字幕: :企鹅拍手带字幕:

===================
#6 DeLaJSR 骚(2) 2018-1-9 19:19
原帖由 十二少 于 2018-1-9 18:40 发表
posted by wap, platform: Android
就是图里这种情况,完全没有下载。


我这个程序只能解决下载的问题,验证的问题解决不了

不过如果你其他游戏下载没问题,那么验证方面出问题的可能性不大,可以试试这个程序

当然你得有DD-WRT/番茄/Merlin系统的路由器,此外,如果测出来一个IP不行可能还需要更换实验



===================
#7 j2j 2018-1-9 19:26
posted by wap, platform: iPhone
好兄弟

===================
#8 老五 2018-1-9 19:43
大写的服 虽然看不懂。。。目前只会改42224221 速度不快但是能下完

===================
#9 mting 2018-1-9 19:55
顶董总~~~~~~~~~

===================
#10 爱狮子油 2018-1-9 20:28
posted by wap, platform: 红米Note2
技术帝,膜拜。。。

===================
#11 cgyldn 2018-1-9 21:23
360时代就是用楼主的工具让下载更稳定,感谢:兔爷赏个吻:

===================
#12 cnmbanzhu 2018-1-9 21:29
前两天下载黑色行动3的僵尸包18.7G,断断续续停止安装大概上百次。DNS是自动,后来改成微软的DNS下完了没断过。

===================
#13 dreamboyg 2018-1-10 09:55
牛逼啊
佩服
谢谢 分享

===================
#14 mike11 2018-1-10 10:35
路由器还是很老的 斐讯k2...........没辙了

===================
#15 ZXQ 2018-1-10 11:17
posted by wap, platform: iPhone
马克备用

===================
#16 rhotov 2018-1-10 11:36
请问“PS系的系统更新域名没有国内CDN,所以你们下游戏快系统更新慢”这个问题目前有解决办法吗?

===================
#17 ash1983 2018-1-10 12:06
顶路由帝了

===================
#18 ash1983 2018-1-10 12:32
压缩包下载下来显示损坏啊

===================
#19 DeLaJSR 2018-1-10 12:57
原帖由 rhotov 于 2018-1-10 11:36 发表
请问“PS系的系统更新域名没有国内CDN,所以你们下游戏快系统更新慢”这个问题目前有解决办法吗?


我14年做的那个工具就可以测速和手动锁定最快的国外升级CDN了,你们有需求的话,我把当年那个老程序也改一改适应现在

===================
#20 DeLaJSR 2018-1-10 12:57
原帖由 ash1983 于 2018-1-10 12:32 发表
压缩包下载下来显示损坏啊


我自己下了解压没问题啊,你再试试,或者更新下winrar/7zip

===================
#21 胜利11人 2018-1-10 13:52
x1我是下载的时候遇到,下载队列有N个,突然正在下载的停止了,换了另外一个下载的游戏。:泥鹅满地打滚:



===================
#22 杀气腾腾 2018-1-11 07:59
我是停下来了,就用手机当热点,开始下了,再转回宽带下,来回几次,一般40g的游戏就下完了,全程必须手动。。。这一点xbox真的很纱布

===================
#23 yuiblur 2018-1-11 09:11
posted by wap, platform: Galaxy Note 5
感谢分享!我这边是电信网络,安装停止直接恢复还不行,得改个DNS跑一段,再切回自动才能安稳得载一段时间,几百G就是这么随缘载完的,也挺佩服自己。。。

===================
#24 smallstep 2018-1-12 14:56
木有支持配置的路由器只能改4222,不过下载完需要改回自动吗?

===================
#25 DeLaJSR 2018-1-12 16:15
原帖由 smallstep 于 2018-1-12 14:56 发表
木有支持配置的路由器只能改4222,不过下载完需要改回自动吗?


必须改回去,因为用国外的DNS会造成国内CDN服务没办法正确判断你的线路,比如你电信的,结果上了联通线路(甚至国外线路)的淘宝,造成使用体验的下降

尤其现在用CDN的服务这么多(可不是仅限于游戏机下载),全局的改DNS会造成其他设备上网速度大概率降低

避免全局化修改产生影响,这就是为啥要用dnsmasq

===================
#26 mjrj22 2018-1-15 13:22
马克吐温

===================
#27 mailps3 2018-1-15 22:46
posted by wap, platform: iPhone
厉害啊,最喜欢这种带技术的玩家!赞

===================
#28 liac 2018-2-9 10:06
posted by wap, platform: iPhone
Mark

===================
#29 dorn 2018-2-9 17:08
1024

===================
#30 superpip33 2018-2-10 07:13
posted by wap, platform: Android
;););)

===================
#31 迷漭 2018-2-18 13:52
请问造成X1(x)系列下载停顿的元凶是?

DNS污染吗?DNS污染值得又是啥呢?

求大神解惑·····

===================
#32 DeLaJSR 2018-2-18 14:24
原帖由 迷漭 于 2018-2-18 13:52 发表
请问造成X1(x)系列下载停顿的元凶是?

DNS污染吗?DNS污染值得又是啥呢?

求大神解惑·····


下载问题不是DNS污染造成的,应该是微软在中国的CDN服务商服务不稳定造成的(估计也没什么人反馈,微软也不知道)

半年前成就不能显示是GFW的锅,但那个也不是DNS污染

DNS污染的原理你稍微搜索下就知道了,这里就不科普了

===================
#33 mike11 2018-3-27 08:55
梅林的 改完了。不停止了。 不过 下载速度 咋没有 以前改dns快呢?
还有 我如果想还原。如何操作?

===================
#34 DeLaJSR 2018-3-27 09:02
原帖由 mike11 于 2018-3-27 08:55 发表
梅林的 改完了。不停止了。 不过 下载速度 咋没有 以前改dns快呢?
还有 我如果想还原。如何操作?


以前从N多个IP同时下载,速度比锁定一个IP快是很正常的

想还原最简单的办法重启路由器即可,或者执行如下命令
kill -9 `cat /var/run/dnsmasq.pid` && dnsmasq --log-async

===================
#35 mike11 2018-3-27 09:23
原帖由 DeLaJSR 于 2018-3-27 09:02 发表


以前从N多个IP同时下载,速度比锁定一个IP快是很正常的

想还原最简单的办法重启路由器即可,或者执行如下命令
kill -9 `cat /var/run/dnsmasq.pid` && dnsmasq --log-async

感谢。解惑了。

===================
#36 riva128 2018-6-12 14:12
mark

===================
#37 fenrile 2018-8-11 07:43
posted by wap, platform: Android
昨天3个T的游戏数据因为破硬盘盒搞的全毁,重头开始下载,时断时续,看了教程泪流满面,还有这么骚的操作,小白刷路由器固件的心酸过程不表,凌晨3点搞定了,现在下载稳如狗,

===================
#38 tcwjdid 2019-5-21 07:38
mark

===================
#39 sarion 2019-5-21 08:23
posted by wap, platform: iPhone
最近确实不如以前快了

===================
#40 胜利11人 2019-5-21 09:12
posted by wap, platform: iPhone
mark

===================
#41 小文和小武 2019-5-21 21:51
Posted by ONEPLUS A3000
mark备用



===================
#42 zsj1zsj 2019-5-22 12:27
Posted by: Xiaomi MI 8
matk

===================
#43 bstdy 2019-7-9 12:57
mark

===================
#44 恋妖壶 2019-7-9 13:06
posted by wap, platform: iPhone
还有用吗,最近各种停止,挂一周也没用

===================
#45 celegorm 2019-7-9 13:42
posted by wap, platform: Android
唉,破事儿真多。我买了XGPU下了几个游戏,地平线4闪退,看网上说要改成简体字,结果地平线的问题没解决地铁新巨像全闪退

===================
#46 sarion 2019-7-9 14:24
posted by wap, platform: iPhone
收藏学习

===================


[登录后才可回复]