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


发新话题
打印

[其他] 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

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

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

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



本帖最近评分记录
  • 十二少 激骚 +2 恭喜发财 2018-1-9 21:46

TOP

引用:
原帖由 rhotov 于 2018-1-10 11:36 发表
请问“PS系的系统更新域名没有国内CDN,所以你们下游戏快系统更新慢”这个问题目前有解决办法吗?
我14年做的那个工具就可以测速和手动锁定最快的国外升级CDN了,你们有需求的话,我把当年那个老程序也改一改适应现在


TOP

引用:
原帖由 ash1983 于 2018-1-10 12:32 发表
压缩包下载下来显示损坏啊
我自己下了解压没问题啊,你再试试,或者更新下winrar/7zip

TOP

引用:
原帖由 smallstep 于 2018-1-12 14:56 发表
木有支持配置的路由器只能改4222,不过下载完需要改回自动吗?
必须改回去,因为用国外的DNS会造成国内CDN服务没办法正确判断你的线路,比如你电信的,结果上了联通线路(甚至国外线路)的淘宝,造成使用体验的下降

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

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

TOP

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

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

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

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

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

TOP

引用:
原帖由 mike11 于 2018-3-27 08:55 发表
梅林的 改完了。不停止了。 不过 下载速度 咋没有 以前改dns快呢?
还有 我如果想还原。如何操作?
以前从N多个IP同时下载,速度比锁定一个IP快是很正常的

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

TOP

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