由于QT官方从5.15后取消了开源版本的离线包,商业版本又需要正版许可才可以下载。
在线版本安装由于安装项目比较多,不使用梯子的话下载时间很长,而且又不稳定,容易下载中途报Hash验证失败的错误。
在这里很多小伙伴们都会问出以下几个问题:
Q: 用过Linux的小伙伴会说,QT开源版不是有第三方镜像源吗?安装的时候使用第三方镜像源不也可以提高下载速度和稳定性吗?
A: QT在线下载跟APT/YUM下载原理类似,都需要从远程镜像源下载List,进而根据List下载对应的包。但是由于QT镜像源的特殊性,国内镜像源定期全部同步QT官方镜像源,这就导致了目前所有的国内镜像源List地址均指向官方镜像源。
这样的话就相当于使用国内镜像源只是下载了对应的List,具体内容还是需要从官网下载。
Q: 如果有梯子的小伙伴会说,我用梯子代理是否可行呢?
A: 使用梯子下载确实可以一定程度上缓解下载慢、不稳定的问题,但是由于QT在线安装需要下载多个对应的组件,使用梯子下载不一定能保证下载稳定性(当然,跟梯子价格也有关系,越贵的当然越好嘛),QT在线安装器只要有一个组件下载失败就会报错,导致后面的组件无法继续下载,必须通过手动重试才能解决问题。
这个过程非常麻烦,而且一不注意点了取消就会导致之前下载的内容全部被删除。
而且由于QT在线安装组件较多,全部安装的话会消耗大量的代理流量。
因此,这里告诉一下大家如何在不翻墙的情况下实现加快QT在线安装的稳定性和速度。
使用Fiddler 4实现QT下载网址自动替换
这里转载CSDN上面的一篇博客:QT5.15在线安装下载速度慢的解决办法,QT5.15.1,QT5.15.0及旧版本都支持
该方法可以在一定程度上缓解问题,但仍存在某种不足之处:
Fiddler 4软件由于设计等原因,当第三方代理软件或防火墙修改系统代理配置的时候,就会弹出警告:The system proxy was changed. Clickl to reenable capturing.
该警告会导致Fiddler 4软件停止抓包,需要用户点击该警告刷新捕获后才可继续抓包。而该软件停止抓包会导致QT下载出错。
该警告出现频率不确定,并且很难找出事发原因。
之前有帖子说可以通过修改防火墙策略,关闭第三方VPN等方法消除黄色警告。
防火墙的问题很难查找,特别是当用户安装了第三方杀毒软件的情况下,很难判断究竟是哪个服务频繁修改系统代理设置。
第三方VPN软件(如shadowsocks、v2ray、clash等代理软件)由于跟Fiddler抓包原理类似(都是通过代理方式工作),但是关闭不一定能解决该警告问题(这个我亲自尝试过),原因未知。
也有帖子说可以通过修改Internet选项删除代理配置或修改组策略参数进而禁止系统代理被修改。
如下帖所示:fiddler代理设置问题导致出现“The system proxy was changed,click to reenable fiddler capture”解决办法
但是对于需要VPN的用户来说,频繁切换系统代理服务非常繁琐,而且某些第三方应用使用系统代理作为代理选项,禁止代理会导致应用无法连接外网。
因此,这里大家可以使用Fiddler Everywhere代替Fiddler 4实现加快QT在线安装速度。
Fiddler Everywhere相当于Fiddler 4的升级版,同时也精简了很多冗余的内容,并且通过高优先级的方式避免了与第三方软件的代理抢占问题。
Fiddler Everywhere取消了终端命令的方式,而是采用Rule的方式实现更为精确的规则操作。
打开该软件后,点击Live Traffic开关使能嗅探,确保Decode选项为开启状态,然后点击Auto Responder开关,并添加以下规则:
1 2 | MATCH regex:http://download.qt.io/(.*) ACTION http://mirrors.tuna.tsinghua.edu.cn/qt/$1 |
这里采用正则表达式的方式实现前缀名的替换与后缀名的追加
写好后保存,即可在左侧Live Traffic菜单栏中看到原本
需注意的几点问题:
Fiddler可以跟第三方VPN软件共存,但是此时第三方VPN软件的PAC分流规则可能不适用。(第三方VPN软件可能会修改系统代理设置,Fiddler默认会通过系统代理端口强制监听本机上所有TCP/UDP流量,这会导致所有的进出流量均通过第三方VPN软件转发给Fiddler)
由于大部分应用代理均通过系统代理实现(Windows UWP系列软件由于采用沙箱隔离运行机制,默认不走系统代理),该方式下载时不建议修改Fiddler代理设置。
如果Fiddler软件监听的是系统代理端口,请务必在Fiddler关闭后通过系统Proxy设置关闭代理,否则软件关闭后将无法上网。
下载过程中请勿打开VPN,勿关闭Fiddler,勿修改系统代理设置,否则会导致下载失败。