» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 46 1234
发新话题
打印

[其他] X1下载经常停止的【非官方】解决方法

可能有人记得,我是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 编辑 ]
附件: 您所在的用户组无法下载或查看附件


本帖最近评分记录
  • dusk 激骚 +3 最骚 Rated by wap 2018-1-10 04:28
  • bhlaowang 激骚 +3 最骚 Rated by wap 2018-1-9 23:25
  • fctg 激骚 +3 最骚 Rated by wap 2018-1-9 22:59
  • Nemo_theCaptain 激骚 +1 恭喜发财 2018-1-9 22:34
  • cgyldn 激骚 +2 恭喜发财 2018-1-9 21:24

TOP

posted by wap, platform: Android
谢谢楼主,下载停止实在是闹心,目前几个游戏磕磕绊绊都下载完了,只有个生化危机4完全没有下载,这个用你的方法可行吗?



TOP

技术帝


TOP

posted by wap, platform: Android
就是图里这种情况,完全没有下载。
附件: 您所在的用户组无法下载或查看附件

TOP

佩服

TOP

引用:
原帖由 十二少 于 2018-1-9 18:40 发表
posted by wap, platform: Android
就是图里这种情况,完全没有下载。
我这个程序只能解决下载的问题,验证的问题解决不了

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

当然你得有DD-WRT/番茄/Merlin系统的路由器,此外,如果测出来一个IP不行可能还需要更换实验
本帖最近评分记录
  • 十二少 激骚 +2 恭喜发财 2018-1-9 21:46

TOP

posted by wap, platform: iPhone
好兄弟

TOP

大写的服  虽然看不懂。。。目前只会改42224221 速度不快但是能下完

TOP

顶董总~~~~~~~~~

TOP

posted by wap, platform: 红米Note2
技术帝,膜拜。。。

TOP

360时代就是用楼主的工具让下载更稳定,感谢

TOP

前两天下载黑色行动3的僵尸包18.7G,断断续续停止安装大概上百次。DNS是自动,后来改成微软的DNS下完了没断过。

TOP

牛逼啊
佩服
谢谢 分享

TOP

路由器还是很老的 斐讯k2...........没辙了

TOP

posted by wap, platform: iPhone
马克备用

TOP

 46 1234
发新话题
     
官方公众号及微博