Quantumult X
Quantumult X(简称 QX)是 iOS 平台上脚本能力最强大的代理客户端,由开发者 @crossutility 开发,在 App Store 售价 7.99 美元。它以极为完善的 HTTP 重写、脚本处理和任务调度功能著称,是有进阶需求(如解锁订阅服务、净化广告、自动签到)的 iOS 用户的首选工具。
基本信息
| 项目 | 信息 |
|---|---|
| 平台 | iOS 9.0 及以上 / iPadOS |
| 价格 | $7.99(一次性购买,终身有效) |
| 开发者 | crossutility |
| App Store | 下载地址 |
| 内核 | 自有内核 |
| 更新频率 | 中等,但版本稳定 |
关于购买
Quantumult X 仅在非中国区 App Store 上架。购买前需要切换到其他地区(如美国、香港)的 Apple ID。由于价格高于 Shadowrocket,购买前建议先了解其核心功能是否符合你的实际需求。
与其他 iOS 客户端的核心差异
Quantumult X 相较于 Shadowrocket 和 Stash,最突出的差异点在于以下两个方面:
脚本能力极强: QX 支持通过 JavaScript 脚本对任意 HTTP/HTTPS 请求和响应进行拦截、修改和重写,这使得它成为"脚本作者"社区中最主流的平台,大量用于解锁流媒体、净化广告、自动处理请求的脚本都以 QX 为首要支持目标。
任务调度(Task): QX 支持设置定时任务,在后台定期执行指定脚本,无需打开应用,可实现自动签到、订阅刷新提醒等功能。
你是否需要 QX?
如果你的需求是"稳定代理+分流",Shadowrocket($2.99)或 Stash(免费)完全够用,不必花费 $7.99。
QX 的价值主要体现在以下场景:
- 需要运行社区脚本实现特定功能(如解锁某些服务的区域限制)
- 需要对 HTTP/HTTPS 请求进行精细的重写操作
- 需要定时任务功能(如自动签到)
- 希望拥有更精细的订阅 Filter(筛选和重命名节点)能力
协议支持
QX 的协议支持与大多数主流 iOS 客户端相当,但对部分新兴协议的支持滞后:
| 协议 | 支持状态 | 备注 |
|---|---|---|
| Shadowsocks(AEAD) | 支持 | — |
| Shadowsocks 2022 | 不支持 | — |
| VMess | 支持 | 支持 WebSocket、HTTP/2 等传输层 |
| VLESS | 不支持 | — |
| Trojan | 支持 | — |
| Hysteria 2 | 不支持 | — |
| TUIC | 不支持 | — |
| AnyTLS | 不支持 | — |
| ShadowTLS | 支持(v2) | v3 支持情况不稳定 |
| WireGuard | 支持 | — |
| HTTP | 支持 | — |
| SOCKS5 | 支持 | — |
关于协议支持的局限性
QX 对新兴协议(VLESS、Hysteria 2、TUIC、AnyTLS)的支持明显落后于 Shadowrocket 和 Stash。如果你的机场主要使用这些协议,QX 可能无法导入或使用对应节点。在购买之前,请先确认你的机场节点协议与 QX 的支持列表兼容。
安装与初始设置
购买和安装
- 切换到非中国区 Apple ID(在"设置"→"App Store"→"Apple ID"中切换账号)
- 在 App Store 搜索"Quantumult X"
- 支付 $7.99 完成购买
- 安装完成后,可以切换回中国区 Apple ID 使用,已购应用不受影响
首次启动
首次打开 QX 时,系统会请求创建 VPN 配置权限,点击"Allow"并通过 Face ID / Touch ID 验证。完成后可以看到 QX 的主界面("风车"图标在屏幕右下角)。
界面概览
QX 的界面由底部标签栏组成:
| 标签 | 说明 |
|---|---|
| Dashboard(仪表盘) | 主界面,显示当前状态、流量统计、最近请求 |
| Resources(资源) | 管理订阅、节点、规则集、重写规则集等 |
| Profiles(配置) | 管理配置文件 |
| Settings(设置) | 全局设置 |
点击右下角的"风车"图标可以快速开关代理,这是日常使用中最常用的操作。
配置文件基本结构
QX 使用纯文本格式的配置文件(通常命名为 quantumult_x.conf),文件由多个 [Section] 块组成:
[general]
# 全局配置
[dns]
# DNS 配置
[policy]
# 策略组(节点分组)
[server_local]
# 本地手动添加的节点
[server_remote]
# 远程订阅(机场)
[filter_local]
# 本地分流规则
[filter_remote]
# 远程规则集(从 URL 下载)
[rewrite_local]
# 本地 URL 重写规则
[rewrite_remote]
# 远程重写规则集
[task_local]
# 本地定时任务脚本
[mitm]
# HTTPS 解密配置
添加代理节点
方式一:添加订阅(机场用户)
这是机场用户最常用的方式,可以批量导入节点并定期自动更新。
- 打开 QX,进入"Resources"(资源)标签
- 在"Server"(服务器)区域,点击右侧的"+"
- 在弹出的界面中选择"Remote Server"(远程服务器)
- 填写以下信息:
- Resource URL:机场提供的订阅链接(QX 格式或通用格式)
- Auto Update:建议开启,设置每 24 小时自动更新
- Resource Tag:自定义名称,便于区分多个订阅
- 点击"Save"保存
关于订阅格式:
QX 支持多种订阅格式,但最佳体验是使用机场专门提供的 QX 格式订阅。该格式中节点以 QX 原生语法表示,可以完整支持 QX 的所有节点特性。如果机场没有提供 QX 格式,可以使用通用 URI 格式(Base64 编码的 URI 列表),但部分协议可能无法正确解析。
订阅中节点的导入规则(Filter):
这是 QX 相对于其他客户端的一个独特优势,可以在订阅层面对节点进行筛选和重命名:
在配置文件的 [server_remote] 块中设置订阅时,可以附加 filter 参数:
[server_remote]
https://your-airport.com/subscribe?token=xxx, tag=机场名称, update-interval=86400, opt-parser=true, enabled=true
opt-parser=true 表示启用内置解析器,QX 会尝试自动解析多种格式的订阅。
如需筛选节点,可以使用 filter 参数(正则表达式匹配节点名称):
[server_remote]
https://your-airport.com/subscribe?token=xxx, tag=机场名称, filter=^(?!.*?(倍率|高倍)).*, update-interval=86400, enabled=true
上例中的 filter 会过滤掉节点名称中包含"倍率"或"高倍"字样的节点。
方式二:手动添加节点
在"Resources"→"Server"区域点击"+",选择"Local Server"(本地服务器),然后在配置文件的 [server_local] 块中按照 QX 的节点语法手动填写。
QX 节点语法示例:
Shadowsocks:
shadowsocks=your.server.ip:8388, method=aes-256-gcm, password=your-password, tag=SS节点
VMess + WebSocket + TLS:
vmess=your.domain.com:443, method=chacha20-poly1305, password=your-uuid, obfs=wss, obfs-host=your.domain.com, obfs-uri=/ws-path, tls-verification=true, tag=VMess节点
Trojan:
trojan=your.domain.com:443, password=your-password, over-tls=true, tls-host=your.domain.com, tls-verification=true, tag=Trojan节点
HTTP + SOCKS5(内建代理类型):
http=your.proxy.ip:8080, username=user, password=pass, tag=HTTP代理
WireGuard:
wireguard=162.159.192.1, port=2408, private-key=wg-private-key, public-key=bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=, peer-ip=172.16.0.2, dns=1.1.1.1, mtu=1280, tag=WireGuard
关于 VLESS 和 Hysteria 2
QX 目前不支持 VLESS 和 Hysteria 2 协议,因此无法手动添加这类节点,订阅中的这类节点也会被跳过。如果你的机场主要以 VLESS + Reality 或 Hysteria 2 为主,需要考虑使用 Shadowrocket 或 Stash 作为替代。
方式三:从剪贴板导入 URI
将节点 URI 复制到剪贴板后,QX 有时会自动检测到并弹出导入提示。也可以在 Dashboard 界面的工具菜单中选择"Import from Clipboard"手动触发。
策略组(Policy)
QX 的策略组功能与 Mihomo 的策略组类似,允许将多个节点组织成不同的组,并应用不同的选择策略。
策略组类型
| 类型 | 说明 |
|---|---|
static | 手动选择,从列表中选择一个出站 |
available | 可用性测试,选择第一个可用的出站 |
round-robin | 轮询,依次使用每个出站 |
dest-hash | 目标哈希,同一目标始终使用相同出站 |
url-latency-benchmark | 延迟测速,自动选择延迟最低的出站 |
ssid | 根据当前 Wi-Fi SSID 自动切换出站 |
配置策略组示例
在 [policy] 块中定义策略组:
[policy]
# 手动选择总代理出站
static=Proxy, HK-Group, JP-Group, US-Group, direct, img-url=https://example.com/icon.png
# 香港节点组(自动测速选最低延迟)
url-latency-benchmark=HK-Group, server-tag-regex=香港|HK|Hong Kong, check-interval=600, tolerance=0, alive-checking=false, img-url=https://example.com/hk.png
# 日本节点组(自动测速)
url-latency-benchmark=JP-Group, server-tag-regex=日本|JP|Japan, check-interval=600, tolerance=0, alive-checking=false
# 美国节点组(手动选择)
static=US-Group, server-tag-regex=美国|US|United States, img-url=https://example.com/us.png
# 流媒体专用组
static=Streaming, US-Streaming-1, JP-Streaming-1, direct
# 广告过滤
static=AdBlock, reject, direct
关键参数说明:
| 参数 | 说明 |
|---|---|
server-tag-regex | 正则表达式,匹配所有 tag 符合条件的节点自动加入该组 |
check-interval | 自动测速的间隔时间(秒) |
tolerance | 节点切换的延迟容差(毫秒),在此范围内不切换 |
img-url | 策略组的图标 URL,显示在 QX 界面中 |
alive-checking | 是否仅在使用时才触发测速(false 表示定期主动测速) |
server-tag-regex 是 QX 策略组最实用的特性之一——它会自动从所有已添加的节点(包括订阅节点)中,将名称匹配正则表达式的节点加入该策略组,无需手动维护节点列表。
分流规则
本地规则
在 [filter_local] 块中定义本地规则,优先于远程规则集生效:
[filter_local]
# 广告域名拦截
DOMAIN,ad.example.com,AdBlock
# 关键词匹配
DOMAIN-KEYWORD,googleads,AdBlock
# 精确域名匹配(含子域名)
DOMAIN-SUFFIX,google.com,Proxy
# 国内 IP 直连
IP-CIDR,192.168.0.0/16,direct
IP-CIDR,10.0.0.0/8,direct
# 国家/地区 IP 匹配(基于 GeoIP 数据库)
GEOIP,CN,direct
# 最终匹配规则
FINAL,Proxy
关于 FINAL 规则
FINAL 是 QX 中的默认规则,用于匹配所有未命中其他规则的流量。通常将其设置为走代理(Proxy 或你定义的策略组名称)。
远程规则集
在 [filter_remote] 块中引用社区维护的规则集,这样可以获得定期更新的完整规则,无需手动维护庞大的域名列表:
[filter_remote]
# 广告过滤规则集
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/Advertising/Advertising.list, tag=广告过滤, force-policy=AdBlock, update-interval=86400, opt-parser=false, enabled=true
# Netflix 规则集
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/Netflix/Netflix.list, tag=Netflix, force-policy=Streaming, update-interval=86400, opt-parser=false, enabled=true
# 国内直连规则集
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/China/China.list, tag=国内直连, force-policy=direct, update-interval=86400, opt-parser=false, enabled=true
参数说明:
| 参数 | 说明 |
|---|---|
tag | 规则集的名称标签 |
force-policy | 强制将规则集中的所有规则指向指定的出站(覆盖规则集中的原始动作) |
update-interval | 自动更新间隔(秒) |
opt-parser | 是否使用内置解析器(通常设为 false,除非规则集格式特殊) |
enabled | 是否启用该规则集 |
推荐的社区规则集来源:
- blackmatrix7/ios_rule_script:QX 格式规则集最完整的来源之一
- DivineEngine 规则集:适合日常使用的综合分流方案
DNS 配置
在 [dns] 块中配置 DNS 行为:
[dns]
# 不使用系统 DNS
no-system
# 禁用 IPv6 DNS 查询(大多数情况下建议禁用,避免 IPv6 导致的延迟问题)
no-ipv6
# 国内 DNS 服务器
server=119.29.29.29
server=223.5.5.5
# DNS over HTTPS
server=https://doh.pub/dns-query
server=https://dns.alidns.com/dns-query
# 境外 DNS(通过代理解析)
server=https://1.1.1.1/dns-query, excluded_ssids=HomeWiFi
# 为特定域名指定解析服务器
server=/*.taobao.com/223.5.5.5
server=/*.jd.com/119.29.29.29
server=/*.apple.com/119.29.29.29
# 为特定域名使用用户自定义解析
address=/example.internal/192.168.1.100
关键配置说明:
no-system:不使用 iOS 系统 DNS,完全由 QX 管理no-ipv6:禁用 IPv6 解析,在大多数场景下可以减少不必要的解析延迟server=/*.domain.com/DNS_IP:为特定域名的子域名指定使用某个 DNS 服务器解析excluded_ssids:在指定 SSID 的 Wi-Fi 下不使用该 DNS,常用于家庭网络直接使用本地 DNS
URL 重写(Rewrite)
URL 重写是 QX 最核心的进阶功能,可以拦截并修改 HTTP/HTTPS 请求和响应。
关于 URL 重写和 MitM
URL 重写对于 HTTPS 流量需要配合 MitM(中间人解密)才能工作。开启 MitM 需要在 iOS 上安装并信任一个由 QX 生成的根证书,这会允许 QX 解密你的 HTTPS 流量。请仅在理解其安全含义的前提下使用此功能,并且只启用来自可信来源的重写规则。
本地重写规则
在 [rewrite_local] 块中定义:
[rewrite_local]
# 格式:URL模式 重写类型 目标
# 拒绝特定请求(广告过滤)
^https?://ad\.example\.com reject
# URL 302 跳转
^https://old\.example\.com https://new.example.com 302
# URL 替换(正则替换 URL 本身)
^https://api\.example\.com/v1/(.*) https://api.example.com/v2/$1
# 修改响应头(需要 MitM + response-header 类型)
^https://example\.com/api response-header {if ($['Access-Control-Allow-Origin'] == undefined) $['Access-Control-Allow-Origin'] = '*'}
# 通过脚本处理请求(需要 MitM)
^https://api\.example\.com/data url script-response-body /path/to/script.js
重写动作类型
| 动作类型 | 说明 |
|---|---|
reject | 拒绝请求,返回 200 空响应 |
reject-200 | 拒绝请求,返回 200 空响应 |
reject-img | 拒绝请求,返回 1x1 透明 PNG |
reject-dict | 拒绝请求,返回空 JSON 对象 {} |
reject-array | 拒绝请求,返回空 JSON 数组 [] |
302 | URL 临时重定向 |
307 | URL 临时重定向(保留请求方法) |
reject-dict | 返回空 JSON 对象 |
url script-response-body | 使用脚本处理响应体 |
url script-request-body | 使用脚本处理请求体 |
url script-echo-response | 使用脚本生成响应 |
远程重写规则集
在 [rewrite_remote] 块中引用社区维护的重写规则集:
[rewrite_remote]
# 广告过滤重写规则
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rewrite/QuantumultX/Advertising/Advertising.conf, tag=广告过滤, update-interval=86400, opt-parser=false, enabled=true
# 解锁特定服务的重写规则(社区脚本)
https://raw.githubusercontent.com/example/scripts/main/unlock.conf, tag=解锁脚本, update-interval=86400, opt-parser=false, enabled=true
脚本功能
脚本是 QX 的招牌功能,通过 JavaScript 脚本可以实现对 HTTP/HTTPS 流量的完整处理:
脚本类型
| 类型 | 触发时机 | 可操作内容 |
|---|---|---|
script-request-header | 请求发送前 | 修改请求头 |
script-request-body | 请求体到达时 | 修改请求体 |
script-response-header | 响应头到达时 | 修改响应头 |
script-response-body | 响应体到达时 | 修改响应体 |
script-echo-response | 拦截请求时 | 直接生成响应 |
script-analyze-echo-response | 脚本生成的响应到达时 | 进一步处理 |
脚本示例
一个简单的 response-body 脚本示例(修改 JSON 响应):
// 该脚本通过 [rewrite_local] 中的 url script-response-body 触发
// 解析并修改响应体 JSON
const body = $response.body;
const json = JSON.parse(body);
// 对响应进行修改
if (json.data) {
json.data.vip = true;
}
$done({ body: JSON.stringify(json) });
在 [rewrite_local] 中引用该脚本:
[rewrite_local]
^https://api\.example\.com/user/info url script-response-body scripts/modify_user.js
脚本文件需要通过 iCloud Drive 或其他方式放置到 QX 可以访问的路径,或者在 [rewrite_remote] 中通过 URL 引用远端脚本。
通过 [task_local] 实现定时任务
QX 支持定时任务,无需打开应用,在后台定期执行脚本:
[task_local]
# 格式:cron表达式 script-path tag=任务名称
# 每天凌晨 0 点执行签到脚本
0 0 * * * scripts/checkin.js, tag=每日签到, img-url=https://example.com/icon.png, enabled=true
# 每小时执行一次
0 * * * * scripts/hourly.js, tag=每小时任务, enabled=true
Cron 表达式格式:分 时 日 月 星期,例如 0 9 * * 1-5 表示工作日每天上午 9 点执行。
关于定时任务的后台执行
iOS 的后台执行机制有严格限制,定时任务的准时性无法完全保证。QX 的定时任务依赖 iOS 的后台应用刷新机制,如果 iOS 系统判断当前资源紧张,可能会推迟或跳过任务执行。对于对时效要求极高的场景(如秒杀),定时任务不是可靠的方案。
MitM 配置
要使 URL 重写和脚本能够处理 HTTPS 流量,需要启用 MitM 并安装根证书:
生成和安装 MitM 证书
- 进入 QX 的"Settings"→"MitM"
- 点击"Generate CA"生成根证书
- 点击"Install CA",系统会打开 Safari 引导你下载并安装证书
- 安装证书后,前往 iOS "设置"→"通用"→"VPN 与设备管理",找到已安装的配置描述文件,点击安装
- 安装完成后,前往 iOS "设置"→"通用"→"关于本机"→"证书信任设置",找到对应证书,开启"完全信任"
- 回到 QX 的 MitM 设置,开启"MitM"总开关
在 [mitm] 配置块中需要指定对哪些域名启用 MitM:
[mitm]
passphrase = your-certificate-passphrase
p12 = base64-encoded-certificate-data
hostname = api.example.com, *.example.net
hostname 指定了需要解密的域名列表,只有列表中的域名的 HTTPS 流量才会被解密。可以使用 * 通配符,但建议只针对需要处理的域名启用,不要使用 * 对所有域名开启 MitM。
安全警示
MitM 证书一旦安装并信任,QX 理论上可以解密所有你配置的域名的 HTTPS 流量。务必:
- 只从官方 App Store 下载 QX,确保应用本身安全可信
- 只对确实需要处理的域名启用 MitM
- 不要将 MitM 证书或配置文件分享给他人
- 在不使用 MitM 相关功能时,可以关闭 MitM 总开关
general 块常用配置
[general]
# 代理测速 URL
server_check_url = http://www.gstatic.com/generate_204
# 服务器检测超时时间(毫秒)
server_check_timeout = 5000
# 节点速度检测并发数
server_check_order = 0
# 地理位置数据库 URL
geo_location_checker = http://api.ipify.org, https://raw.githubusercontent.com/crossutility/Quantumult-X/master/sample-location-with-script.js
# 直连策略下的端口
# 留空表示所有端口均允许直连
direct_simple_list = 80, 8080
# 短期任务通知(脚本任务的结果通知显示时间)
task_notification_widget = true
# 资源解析器 URL(用于解析多种格式的订阅)
resource_parser_url = https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js
# 排除特定进程或域名使用系统代理
excluded_routes = 192.168.0.0/16, 10.0.0.0/8
# UDP 策略(不支持 UDP 的节点的 UDP 流量处理方式)
udp_whitelist = 53, 123, 1900, 5353
# 排除特定域名不走 QX 代理
# bypass_tun 与 skip-proxy 字段用法
skip-proxy = 192.168.0.0/24, 10.0.0.0/8
完整配置文件模板
以下是一个可直接使用的基础配置文件模板,适合大多数机场用户:
[general]
server_check_url = http://www.gstatic.com/generate_204
server_check_timeout = 5000
geo_location_checker = disabled
resource_parser_url = https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js
[dns]
no-system
no-ipv6
server = 119.29.29.29
server = 223.5.5.5
server = https://doh.pub/dns-query
server = https://1.1.1.1/dns-query
[policy]
static = Proxy, server-tag-regex=^(?!.*?direct).*, direct, img-url=https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/mini/Global.png
url-latency-benchmark = Auto, server-tag-regex=^(?!.*?direct).*, check-interval=600, tolerance=0, alive-checking=false, img-url=https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/mini/Auto.png
static = Final, Proxy, direct
[server_remote]
# 在此处填写机场订阅链接
# https://your-airport.com/subscribe?token=xxx, tag=机场名称, update-interval=86400, opt-parser=true, enabled=true
[filter_remote]
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/Advertising/Advertising.list, tag=广告过滤, force-policy=reject, update-interval=86400, opt-parser=false, enabled=true
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/China/China.list, tag=国内直连, force-policy=direct, update-interval=86400, opt-parser=false, enabled=true
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/Proxy/Proxy.list, tag=代理, force-policy=Proxy, update-interval=86400, opt-parser=false, enabled=true
[rewrite_remote]
# 在此处添加需要的远程重写规则集
[filter_local]
ip-cidr, 10.0.0.0/8, direct
ip-cidr, 127.0.0.0/8, direct
ip-cidr, 172.16.0.0/12, direct
ip-cidr, 192.168.0.0/16, direct
ip-cidr, 224.0.0.0/24, direct
geoip, cn, direct
final, Final
[rewrite_local]
# 本地重写规则
[task_local]
# 本地定时任务
[mitm]
# 如果不使用 MitM 功能,此处留空即可
导入配置文件
QX 支持通过多种方式导入完整的配置文件:
方法一:通过 URL 下载
- 进入"Profiles"(配置)标签
- 点击右上角的"+"
- 在 URL 字段填入配置文件的直链地址
- 下载完成后点击"Use"使用该配置
方法二:通过 iCloud Drive
将 .conf 格式的配置文件上传到 iCloud Drive,然后在"Profiles"页面选择"Import from iCloud Drive"。
方法三:Safari 打开链接
在 Safari 中打开配置文件链接,如果文件扩展名为 .conf 且内容符合 QX 格式,iOS 会提示用 QX 打开,点击后自动导入。
UI 快捷操作
Dashboard(仪表盘)的常用操作
- 左滑节点:快速切换该节点在列表中的启用状态
- 长按风车图标:可以快速切换代理模式(规则/全局/直连)
- 点击流量统计区域:查看详细的连接日志
快速节点切换
在 Dashboard 中,点击当前激活的策略组名称,可以快速展开并切换该组内的节点,无需进入完整的节点列表界面。
节点延迟测试
在"Resources"→"Server"中,对某个订阅或节点组右滑,可以快速触发延迟测试。
与其他 iOS 客户端的详细对比
| 对比维度 | Quantumult X | Shadowrocket | Stash | Loon | Surge |
|---|---|---|---|---|---|
| 价格 | $7.99 | $2.99 | 免费(部分高级功能内购) | $2.99 | 较贵 |
| VLESS + Reality | 不支持 | 支持 | 支持 | 支持 | 支持 |
| Hysteria 2 | 不支持 | 支持 | 支持 | 支持 | 支持 |
| 脚本能力 | 极强 | 中 | 中 | 强 | 极强 |
| 定时任务 | 支持 | 不支持 | 不支持 | 支持 | 支持 |
| 节点 Filter | 支持(正则) | 有限 | 有限 | 支持 | 支持 |
| 配置格式 | QX 专有格式 | Shadowrocket 格式 | Clash Meta 格式 | Loon 格式 | Surge 格式 |
| 机场兼容性 | 中(需 QX 格式) | 高(通用格式) | 高(Clash 格式) | 高 | 高 |
| 入门难度 | 高 | 低 | 中 | 中 | 高 |
| 脚本社区活跃度 | 极高 | 中 | 低 | 高 | 高 |
总结:
- QX 的核心价值是脚本生态和进阶定制,如果你不需要这些,它的高价格和高门槛并不划算
- 对于机场用户的日常使用,Shadowrocket 或 Stash 更简单实用,且支持更多新协议(如 VLESS + Reality)
- QX 和 Surge 都有极强的脚本能力,区别主要是价格和部分细节功能
常见问题
Q:我的机场订阅导入 QX 后,节点显示数量远少于预期,是什么原因?
最常见的原因是订阅中包含了 QX 不支持的协议(如 VLESS、Hysteria 2、TUIC),这些节点在导入时会被自动跳过。如果机场提供了专门的 QX 格式订阅,优先使用该格式,它只包含 QX 支持的协议节点。也可以开启 opt-parser=true 使用内置解析器,但效果不能保证。
Q:开启 MitM 后,某些 App 提示"证书不受信任"或无法连接?
这通常发生在以下情况:
- MitM 证书未正确安装或未在"证书信任设置"中信任
- 某些 App 使用了 SSL Pinning(证书固定),不接受非预设证书。对于这类 App,应将其域名从 MitM 的 hostname 列表中移除
- 证书已过期,需要重新生成和安装
Q:脚本运行后没有效果,怎么排查?
排查步骤:
- 确认对应域名已在 MitM 的 hostname 中
- 确认 MitM 总开关已开启
- 在 QX 的日志界面检查是否有脚本执行的错误信息
- 确认脚本路径是否正确(本地脚本路径相对于 QX 的配置目录)
- 尝试在"Resources"→"Script"中手动触发脚本,查看输出
Q:策略组配置了 url-latency-benchmark,但节点一直不自动更新延迟?
检查以下设置:
alive-checking是否设置为false(设为 true 则只在连接使用时触发测速)check-interval的值是否合理(建议 300-600 秒)- 设备是否处于低电量模式(低电量模式下 iOS 会限制后台活动)
- 尝试手动点击策略组触发一次测速
Q:配置文件更新后,新的规则没有生效?
修改本地配置文件后,需要在"Profiles"标签中找到当前使用的配置文件,点击"Use"重新应用,或者通过"Reload"按钮强制重新加载。订阅和远程规则集的更新则需要通过"Resources"标签手动触发或等待自动更新。
Q:QX 和 Shadowrocket 能同时安装并分别使用吗?
可以。两个 App 可以同时安装,但 iOS 的 VPN 机制同一时间只能激活一个,切换时只需打开另一个 App 并点击启动开关,iOS 会自动停用当前的 VPN 并切换到新的。
安全注意事项
- 谨慎使用第三方脚本:运行他人编写的脚本存在安全风险,脚本可以读取和修改你的网络请求,包括可能包含敏感信息的请求。只使用来自可信作者和可信来源的脚本
- 不要随意安装 MitM 证书:仅在确实需要脚本处理 HTTPS 流量时才安装并信任 MitM 证书
- 保护好配置文件:配置文件中可能包含订阅链接等敏感信息,不要将其上传到公开的代码仓库
- 定期检查已安装的证书:在 iOS 的"设置"→"通用"→"VPN 与设备管理"中,定期检查并清理不再需要的证书和描述文件
相关资源
- Quantumult X App Store 页面:apps.apple.com/app/quantumult-x/id1443988620
- blackmatrix7 规则集和脚本:github.com/blackmatrix7/ios_rule_script
- KOP-XIAO 资源解析器:github.com/KOP-XIAO/QuantumultX
- Qure 图标集(策略组图标):github.com/Koolson/Qure
延伸阅读
- Shadowrocket — 入门首选,$2.99 且支持更多新协议
- Loon — 兼顾脚本能力和协议支持的 iOS 客户端
- Stash — 基于 Mihomo 内核,Clash 格式订阅兼容性最佳
- Surge — macOS 和 iOS 平台功能最全面的付费工具
- 代理软件总览 — 回到软件总览页面