简介
Quantumult X 是 iOS 系统即苹果手机系统下的代理软件客户端,功能强大且支持多种代理协议。
目前(截止 2023 年 7 月 1 日)支持如下协议:Shadowsocks、ShadowsocksR、HTTP(S)、Socks5、VMess、Trojan 代理协议。
支持 tls-cert-sha256 以及 tls-pubkey-sha256 参数等自定义 TLS 验证
shadowsocks 以及 shadowsocksR 协议类型, 支持 V2-Plugin 支持 UDP,支持 UDP-OVER-TCP
vmess 类型,ws,wss(ws+tls),over-tls,tcp,支持 UDP
trojan 类型, 支持 over-tls 以及 websockets,支持 UDP
因为某些原因,Quantumult X 在中国的 iOS AppStore 中没有上架,所以如果需要购买的话请去其它国家区域的 App Store 中购买。目前定价是 $7.99。如果你没有外区的 Apple ID,那么可以参照 此教程注册一个美区 Apple ID,并去苹果的美国官方网站上购买 10 美元的 gift card,自己进行购买使用。不要 去借所谓的朋友的 Apple ID 进行下载使用,或者去淘宝咸鱼之类的地方购买成品 Apple ID/ 兑换码,因为这些并不安全,很多是盗刷 / 黑卡,同时因为 Quantumult X 有共享验证,会导致你的钱白花了 app 还没法使用。当然,如果你有值得信任的人可以让他在外区购买兑换码,兑换到 自己 的外区 Apple ID 中。
另外,在外区目前存在 Quantumult 和 Quantumult X 这两个 app,请认准带 X 的蓝色图标版,前面那个不带 X 的灰色版作者已经停更 3 年了。
首次使用
在首次下载 Quantumult X 的时候会弹出询问本地网络、无线数据及通知,请选择如下图红框中的允许以及选择使用无线局域网与蜂窝网络。
验证正版
如果你已经在使用,如何确认你所使用的 Quantumult X 是否正版?
按如下图所示
点开 app,点击右下角的风车图标进入设置页面,拉到最底下,选择其他设置,拉到最底下观察版本号旁边的云朵☁️状态:蓝色✓为正版,红色✕为盗版 / 共享版,绿色问号❔则表示无法验证,需要登陆购买的 Apple ID 进行再次验证。
注意:非正版状态会影响软件的功能,导致功能不可用。
开始使用
快速开始
导入订阅
如果你只是想简单快速的开始使用 twitter、Instagram、telegram 等,而手边以及有现成的机场订阅的时候,可以通过导入机场订阅,使用自带的默认配置即可使用。
先去所购买的机场,复制订阅链接(此处是在 Mac 上截图,如果 iOS 上使用 Safari 也是差不多的)
然后打开 Quantumult X,点击右下角的风车进入设置页面,在节点栏目下点击节点资源,选择右上角的添加链接🔗图标,在资源路径中粘贴上机场订阅的地址,在资源标签中填上所使用的机场名字,点击右上角的✓保存即可。
在进行完上面的操作后,我们的 Quantumult X 已经是可以使用了,只需要点开程序开关,选择运行模式为规则分流,即可享受“自由”的网络了。
Quantumult X 运行模式选择方法:长按右下角的小风车,选择彩色(规则分流)
在此种情况下的 Quantumult X 只能是说简单的可以使用,如果我们需要一些进阶的使用,例如对节点进行筛选,对不同的 app 进行不同的分流,例如我想看香港的 YouTube,看新加坡区的 Netflix,等等那就需要添加更多的分流规则和对节点进行筛选了。在接下来,会以半官方推荐的配置为基础,进行教学。
安装证书
在进行一些复杂用途过程中,需要用到 Quantumult X 的重写和 MITM 功能
使用重写只需要点击右下角的风车图标,下拉到重写,点上开关即可
使用 MITM 功能,则需要进行根证书的安装,点击 MITM 的生成证书,然后选择配置证书,允许下载描述文件,安装到 iPhone 上
具体过程请参照下面的图片进行
下载完描述文件后,需要到 iPhone 的设置进行后续步骤,到设置页面,进行证书的安装,安装完成后,到通用 - 关于本机里面,拉到底下的证书信任设置里面,点上信任开关,才算安装完毕。
安装完证书后,就可以点上 Quantumult X 设置里面的 MITM 开关了。
下载配置
对于新手,强烈建议使用懒人配置来开始入手。
懒人配置的下载地址:
https://raw.githubusercontent.com/As-Lucky/Lucky/main/Lucky-qx.conf
使用方法:
打开 Quantumult X,点一下右下角的风车进入设置,下拉到配置文件部份,选择下载配置,将上面的链接粘贴进去,点击右上角的✓保存,Quantumult X 会下载配置文件内容,点击右上角的✓保存。
注意:Quantumult X 不支持多配置文件,所以下载配置文件会覆盖之前的配置文件,可以在设置页面的配置文件中选择导出配置将之前的配置文件进行保存。
注意:因为 下载配置是会覆盖之前的配置,所以我们还需要重新导入机场订阅,安装证书以及打开重写、MITM 开关。
下图即是导入懒人配置后,重新添加订阅,删除配置里面自带的示范,并开始使用
在懒人配置中,已经添加了几个常用的分流和自定义策略,接下来会以它会基础讲述如何自己添加需要的分流、重写、策略、脚本等步骤。
添加分流
分流:规则分流模式,网络请求的走向由分流规则中所匹配到的策略决定。域名类规则的匹配逻辑取决于是否开启了「其它设置」中的「分流匹配优化」;IP 类规则(GEO、ASN、CIDR)在所有域名类规则之后按加载顺序进行匹配;FINAL 类规则则在其它所有规则之后进行匹配。可点击“分流规则”查看加载顺序。
总的来说,分流是按照加载顺序从上往下匹配,FINAL 则是在所有上面规则没有匹配到之后的一个规则。所以我们进行分流规则的排列顺序原则上是按照如下顺序进行排列:
- 修正规则(一般为直连,DIRECT)
- 去广告规则(一般为拒绝,REJECT)
- 国外必须代理(一般为 PROXY,或者自己选择的节点 / 策略)
- 国外建议代理的(一般为 PROXY,或者自己选择的节点 / 策略)
- 国内(一般为直连,常采用 GEOIP 规则,策略是 DIRECT)
- FINAL(兜底)(一般为 PROXY,或者自己选择的节点 / 策略或者直连均可)
也就是小范围规则在上面大范围在下面最后兜底。
分流分为本地和远程
本地规则添加方式:点击小风车进入设置,点击分流规则,点击右上角的加号(➕),根据需要选择类型、参数和策略后点击右上角的✓进行保存。
一般来说,针对简单的分流规则,我们可以通过本地自行添加的方式,但是一些较为复杂的或者数量比较多的规则,我们可以选择使用网上已经整理好的规则资源(远程)的方式进行添加。
这里仍然以懒人配置为例,虽然带了 YouTube 和 Netflix,但是如果我想看 Disney+,则需要添加迪斯尼的规则,
在 GitHub 中,有很多已经收集整理好的规则、重写、脚本等资源,学会在中查找自己需要的。
这里推荐一个种类比较齐全的 GitHub:
https://github.com/blackmatrix7/ios_rule_script
因为需要的是规则,点进去 rule,选择当前使用的 app QuantumultX,然后在其中找到 Disney,点进去后,找到 Disney.list 底下有说明,我们查找资源的时候要学会阅读说明,一般都会有内容的介绍和使用方法,
点击 Disney.list,进去后再点击栏目右上角的…会出现选项,选择 view,即可查看规则的真实地址(RAW),点击后会显示 list 的内容,长按地址栏,复制链接粘贴到 Quantumult X 的规则资源的资源路径,填上标签并保存即可。
添加重写
重写(rewrite)用于修改 HTTP 或 HTTPS 请求与响应。该规则按加载顺序进行匹配,可以点击“重写规则”查看加载顺序。
重写一般较多的用来去广告,跑一些脚本进行 app 的签到以及 app 的内购破解等。
重写和分流一样,分为本地和远程两种,目前重写支持的类型如下表:
作为新手一般不建议自行添加本地重写,而是使用别人已经整理好的远程重写资源,添加的方法和步骤与添加远程分流规则一样。
远程重写
这里仍然以懒人配置为基础,添加安全跳转(saferedirect)重写为例:
找到 rewrite 下的 QuantumultX,然后找到 saferedirect.conf,查看资源地址,复制链接到设置里面的重写下的规则资源里面的资源路径,写好标签,勾选上资源解析器,保存。
受益于 @KOP-XIAO 的资源解析器,让 Quantumult X 变得更加好用。
使用非标准 Quantumult X 的订阅 / 重写 / 分流时,建议勾选上。
资源解析器的安装地址:
https://fastly.jsdelivr.net/gh/KOP-XIAO/QuantumultX@master/Scripts/resource-parser.js
如果你用其它人的配置里面没有的话,可以在配置文件的 [general] 字段里面添加:
resource_parser_url= https://fastly.jsdelivr.net/gh/KOP-XIAO/QuantumultX@master/Scripts/resource-parser.js
请注意:资源解析器可以替换,但是请勿重复添加。
关于资源解析器的使用请参照教程:https://tinyurl.com/2jyygfom
Tips:如何区分一个远程资源是重写还是规则?
一般来说重写是以.conf 或者.js 为结尾,点开内容带有?/\ 这些内容,而分流一般以.list 为结尾,点开多是较为整齐的一行一行以 host 开头的,一般整理的较规范的作者都会写上类型和使用方法。
本地重写
因为重写所支持的类型比较多,这里仅以简单的京东比价作为例子
在得到的原代码是这样的:
京东比价
http-response ^https?://api\.m\.jd\.com/(client\.action|api)\?functionId=(wareBusiness|serverConfig|basicConfig|lite_wareBusiness|pingou_item) requires-body=true, script-path=https://raw.githubusercontent.com/Tartarus2014/Script/master/jdjf_price.js, tag= 京东比价 Lite(通知版)
对这段代码进行分析:
需要 http-response 同时有 URL 的正则匹配,requires-body=true,需要 body,需要用到脚本,所以重写类型为 Script-response-body,选好类型后,用以匹配的 URL 就是 ^https?开始到 requrs-body=true 之前这一段:
^https?://api\.m\.jd\.com/(client\.action|api)\?functionId=(wareBusiness|serverConfig|basicConfig|lite_wareBusiness|pingou_item)
而底下的脚本路径就是 script-path= 后面的 URL 地址:
https://raw.githubusercontent.com/Tartarus2014/Script/master/jdjf_price.js
填写保存好之后,按照提示更新脚本,打开京东点开商品即可看到效果。
根据此例子,大家遇到类似的都可以参照进行。
提醒:有些重写里面带有 MITM,弄到本地时候,记得在 MITM 里面添加对应主机名。
再次提醒:新手不建议使用本地重写。
MITM
“MITM” 是 “Man-in-the-Middle” 的缩写,翻译为中文是 “ 中间人攻击 ”。
中间人攻击是一种网络安全攻击技术,攻击者将自己置于通信的两个实体之间,以便能够监视、篡改或劫持它们之间的通信。在中间人攻击中,攻击者可以截获通信数据并进行各种操作,而通信的两个实体则对攻击者的存在一无所知。
通过中间人攻击,攻击者可以窃取敏感信息(如登录凭据、个人信息等)、篡改通信内容或进行其他恶意行为。为了防止中间人攻击,通信双方可以使用加密技术、数字证书和其他安全机制来确保通信的机密性和完整性。
“MITM” 或 “ 中间人攻击 ” 是一个重要的网络安全概念,了解它可以帮助人们保护个人信息和网络通信的安全。
在 Quantumult X 中,MITM 根证书用于 HTTPS 解析,且只有配置了主机名的才会被 MITM 模块进行解析,主机名按照加载顺序进行匹配。
MITM 搭配用于去广告、内购破解等,请注意的是不是所有的都能进行 MITM,有一些进行 MITM 会导致 app 无法使用,例如 App Store、抖音、支付宝等,如果有时候遇到某个 app 无法使用,可以在 MITM 部份查看是否因此造成的,如果是发现错误的进行了 mitm,可以在主机名前加入“-”注释掉,通配符 * 和?可以用于主机名,如果使用单独的一个 * 符号作为主机名参数,则会匹配到所有的主机名(MITM ALL)
自定义策略
Quantumult X 可以通过设置,将一系列的策略进行组合成策略组。
目前支持的策略组类型有:
static 策略组中,你需要手动选择想要的节点 / 策略组。
available 策略组将按顺序选择你列表中第一个可用的节点。
round-robin 策略组,将按列表的顺序轮流使用其中的节点。
dest-hash 策略组,随机负载均衡,但相同域名走固定节点。
url-latency-benchmark 延迟策略组,选取延迟最优节点。
可以自己根据自己情况进行选择
一般情况下,如果所用的节点很稳定,那么可以采用 static,选中了就一直用即可,如果不想去选,那么 available 和 url-latency-benchmark 均是一个比较好的选择,区别就是 available 正常情况下会默认选择第一个,不可用时才会选择下一个,而 url-latency-benchmark 会根据设置情况,选择在某个时间段内延迟最低的节点。这里重点提醒一下,延迟最低不等于速度最快,延迟低仅仅代表响应时间短,但是可能会带宽比较低,可能才 10KB/s,而延迟高一些的可能 10MB/s。
round-robin 和 dest-hash 两种都是负载均衡策略,都是随机使用策略组内包含的节点,但是算法上有区别,见上面的说明。
Quantumult X 还有一个比较有特色的地方就是可以给策略组选择个性的图标,可远程,也可本地 /iCloud(Quantumult X/Images 路径下)(108*108 大小),如果自己会制作可以按照规定尺寸进行制作,也可以选择安装网络上比较好的图标库。
这里可以去 telegram 的 https://t.me/lucky1108t/323 里面有大量收集整理好的图标库。
下面以懒人配置为基础,建立一个手动选择(static)的新加坡策略组,并添加一个国家图标。
点击添加策略组,选择好类型并进行命名,进图标库里浏览选择图标(或者安装新图标库并选择)
选择好节点后进行保存,可以点击图标部位进行延迟测试,后面两个延迟数字,前面的是 TCP,后面的是 HTTP 结果。我们因为实际上使用的都是 HTTP 链接,所以参考的主要是后面的延迟数据。
节点 / 资源的筛选支持正则,下面是常用的正则,请根据自己情况进行套用:
(A.*B|B.*A) // 有 A 有 B
^(?!.*A) // 不含 A
^(?!.*B).*A // 有 A 但不含 B
(A).*(B)|(B).*(A) // 节点名既有 A 又有 B
(A)|(B) // 节点名有 A 或者 B
^((?!A).)*$ // 节点名不含有 A
^(?!.*A).*B // 节点名不含有 A,同时含有 B
策略组中是可以包含其它的策略组的
我们可以在一个策略组上面长按,会弹出一个菜单,可以对策略组进行自定义编辑,排序更换图标更换背景,或者删除策略组
请注意:在进行删除策略组的操作时候,请确保该策略组没有被使用。
下面以原来创建的 Disney 策略组的图标更换和将原来自带的策略换为香港节点和新加坡节点,展示一下操作过程。
长按策略组后,先进行图标更换,再去掉默认添加的 DIRECT、REJECT、PROXY 策略组
下拉将想放入的策略组添加进去并保存,这样就可以根据需要,选择香港的节点或者新加坡的节点来观看 Disney 了。
以上即是策略组的一些常规操作。
HTTP 请求
Quantumult X 可以构造 HTTP(S)请求,并在指定时间发送。我们经常接触到的节点流媒体查询、京东签到(现在几乎没羊毛了)、一些其它 app 的签到等等,都可以在这里使用。它的格式一般是.json
这里以我的小伙伴们弄的一个对节点进行简单测速的节点操作为例,介绍如何添加:
这个 json 的地址是:
https://raw.githubusercontent.com/getsomecat/Qx/main/Net_Speed.json
点开 Quantumult X,点击小风车进入设置,下滑选择 HTTP 请求,点击上面第一个图标,添加任务库,输入任务库的链接并保存,然后点击 + 号将任务添加到请求列表中即可启用
添加好后,可以到节点页面对节点长按进行脚本操作
这种对节点进行操作的类型是 UI 交互查询脚本(event-interaction)
还有一种是任务类型的,这里以 B 站签到脚本为例。
https://raw.githubusercontent.com/ClydeTime/Quantumult/main/Script/Task/BiliBili.js
打开这个脚本,可以看到脚本的说明如何使用
可以看到,这个需要在 [task_local] 和[rewrite_remote]分别复制进去相应的文本
按照说明操作后,打开 B 站获取了 cookie,因为设置的自动运行时间未到,所以手动执行了脚本。
遇到类似的脚本均可 参照脚本使用说明 进行使用。
网络活动
在 Quantumult X 中,我们可以很直观的通过点击网络活动来查看当前的网络情况
通过查看网络活动,我们可以了解网络是否按照所设想规则来进行,便于排查遇到的各种问题。如果遇到问题需要请教别人时候,也请最好附上相应的网络活动情况截图,有利于分析原因。上图中有个标注是错误的(谢谢医生的细心解答 @dcpeng)
这个是指 2647 建立的链接被重用到 2685
提问的艺术
我们在使用的过程中,难免会遇到各种问题,可能有些问题我们通过搜索引擎能够查找到答案,但是有时候需要在社交媒体中进行沟通和交流,准确的反馈自己遇到的问题有助于别人了解你的问题,而迅速帮你解决问题。建议可以阅读一下 提问的艺术 可以帮助你如何正确提问。或者参考一下下面这张图片: