探索者加速器 - Telescope

Quantumult X 规则不生效?先查匹配顺序、DNS 和远程规则

更新于 2026-10-24 · telescope.lat

简答:Quantumult X 规则不生效,先停用远程规则并查看请求记录,再核对规则类型、策略名称和 DNS。默认有效序列中本地规则位于远程规则前、FINAL 最后;使用 inserted-resource=true 后,远程资源可能改变插入位置。

定义:Quantumult X 规则是依据域名、请求特征、目标 IP 或 GeoIP 条件,将流量交给直连、拒绝或指定策略的匹配条目。

一分钟自查:先判断是哪一环出错

如果你遇到“写了规则仍走直连”“远程规则集为空”或“geoip 不命中”,先不要继续堆规则。本文为第三方使用指南,Quantumult X 的界面名称可能随版本变化;配置字段以官方 sample.conf为准。公开的官方 Issue 环境记录包含 Quantumult X 1.8.0(build 946),不同版本请以当前 App 页面为准。

  1. 停用所有远程规则。只保留一条本地 host 规则和一条 final。
  2. 查看请求记录。确认请求域名、命中的规则和最终策略,而不是只看配置文件。
  3. 核对策略名称。direct、reject 是内置策略;自定义名称必须与策略组或节点标签完全一致。
  4. 再启用一条远程规则。确认资源能更新、内容不是错误网页,并检查是否设置了 force-policy。
  5. 最后检查 DNS。ip-cidr 和 geoip 需要目标 IP 或解析结果参与判断。
Quantumult X 规则匹配流程速查
环节要确认什么异常表现
请求进入 Tunnel隧道或 VPN 状态已启用所有规则都像没有生效
DNS 解析域名能解析,DNS 没有超时geoip、ip-cidr 结果异常
有效规则序列本地、远程及插入资源的先后关系宽泛规则截获后续规则
命中策略请求记录显示的策略名称规则命中但出口不符合预期
FINAL未命中请求的默认出口未列入规则的流量走错方向

先用这份最小配置验证规则链路

下面的配置只使用 Quantumult X 的内置策略 direct 和 reject,不依赖虚构节点名。它适合先验证规则语法、DNS 和请求记录。若要使用代理策略,请把 proxy 替换成你配置中真实存在的策略组名称。

[dns]
server = 223.5.5.5
server = 119.29.29.29

[filter_local]
host, example.com, reject
host-suffix, local, direct
ip-cidr, 192.168.0.0/16, direct
ip6-cidr, 2001:db8::/32, direct
geoip, cn, direct
final, direct

[filter_remote]
FILTER_LAN, tag=LAN, force-policy=direct, update-interval=86400, inserted-resource=true, enabled=true

example.com 和 2001:db8::/32 仅用于演示语法。官方 sample.conf 展示了 user-agent、host、host-keyword、host-wildcard、host-suffix、ip-cidr 和 ip6-cidr 等类型,并说明 DNS 结果会用于过滤判断或直连策略连接;通过代理服务器连接时,客户端不一定知道目标域名对应的目标 IP。可先用这份小配置确认链路,再加入实际规则集。

filter_local 与 filter_remote 的实际先后关系

默认情况下,本地规则位于远程规则之前,FINAL 位于最后。因此,同一请求同时被本地和远程规则匹配时,应先检查本地规则;但这不等于本地规则中的任何条目都天然能覆盖一切资源,因为远程资源可以使用 inserted-resource=true 改变资源的插入方式。

官方 sample.conf 在 [filter_remote] 中给出了 FILTER_REGION 和 FILTER_LAN 配合 inserted-resource=true 的示例。官方公开 Issue #251 则记录了宽泛的本地规则 host-keyword, ., proxy 截获远程规则的复现,以及使用 inserted-resource=true 后暂时改善的情况。因此,排查时应采用这个结论:默认先看本地规则;启用插入资源后,按实际有效序列和请求记录判断,不要把“本地永远优先”当成绝对规则。

  1. 先删除或停用所有远程资源。
  2. 在 [filter_local] 放一条明确的 host 规则和一条 final。
  3. 确认请求记录能看到明确规则命中。
  4. 逐条恢复远程规则,记录每次启用后的命中变化。
  5. 发现宽泛规则截获请求时,先移除 host-keyword, . 或类似兜底写法,再测试插入资源。

Quantumult X 按有效规则序列匹配,不应按“规则越具体就自动优先”来推断结果。若一条宽泛规则已经先命中,后面的规则不会因为更具体而自动获得优先权。

参考:官方 sample.conf、官方 Issue #251。

常见规则类型:语法和适用场景

Quantumult X 常见分流规则
类型示例适合处理注意事项
hosthost, example.com, direct单个明确域名不等同于后缀匹配
host-suffixhost-suffix, example.com, proxy域名及其子域名范围比 host 更宽
host-keywordhost-keyword, ads.example, reject域名关键词容易误伤,必须尽量缩小关键词
host-wildcardhost-wildcard, *.example.com, proxy通配符域名检查通配符是否覆盖过宽
user-agentuser-agent, ?App*, proxy按请求特征匹配HTTPS 请求未必能看到 User-Agent
ip-cidrip-cidr, 192.168.0.0/16, directIPv4 地址段可能需要 DNS 解析
ip6-cidrip6-cidr, 2001:db8::/32, directIPv6 地址段确认设备和网络具备 IPv6
geoipgeoip, cn, direct按目标 IP 地区判断依赖目标 IP 和 GeoIP 判断
finalfinal, direct所有未命中流量应放在本地规则末尾

规则写法与其他客户端不能直接混用。例如 Quantumult X 使用小写的 host-suffix,不是 Clash 常见的 DOMAIN-SUFFIX;远程规则在 [filter_remote] 声明,而不是直接把其他客户端的顶层 rules 或 proxies 粘贴进来。

按需求组织规则:直连、代理、局域网和拦截

局域网和本机地址直连

[filter_local]
ip-cidr, 10.0.0.0/8, direct
ip-cidr, 172.16.0.0/12, direct
ip-cidr, 192.168.0.0/16, direct
ip-cidr, 127.0.0.0/8, direct
ip6-cidr, ::1/128, direct
host-suffix, local, direct
final, direct

把指定服务交给代理策略

[filter_local]
host-suffix, service.example, proxy
host, api.example.com, proxy
final, direct

实际使用时,应把示例域名替换为你在请求记录中看到的真实域名。对某个 AI 服务、流媒体或通信应用进行分流时,建议先观察请求记录,再添加域名后缀规则;不要凭应用名称猜域名,也不要把一整个大合集直接绑定到代理策略。

广告和跟踪域名拦截

[filter_local]
host, ads.example.com, reject
host-suffix, tracking.example.com, reject
final, direct

广告拦截不建议使用 host-keyword, ads, reject 这类过宽写法,因为正常域名中也可能包含相同字符。优先使用精确域名或可信规则集,并在发现误伤时删除该条规则后重新验证。

远程规则集:tag、force-policy、update-interval 和 opt-parser

官方 sample.conf 说明,远程资源默认同步间隔为 86400 秒,也可以用 update-interval=172800 改为 172800 秒;负数表示禁用自动同步。一个常见的远程规则声明可以写成:

[filter_remote]
https://example.com/filter.snippet, tag=Example, force-policy=proxy, update-interval=86400, enabled=true
  • tag:给远程资源设置显示名称,方便在资源列表中识别。
  • force-policy:远程规则命中后强制使用指定策略;官方 sample.conf 说明,设置该参数后,远程资源自身写入的策略会被忽略。
  • update-interval:自动同步间隔,单位为秒。
  • enabled:控制资源是否启用。
  • inserted-resource:用于指定资源的插入方式,遇到本地与远程规则冲突时要结合实际命中记录验证。

opt-parser 不是普通的“远程规则开关”。官方 sample.conf 在 [server_remote] 中展示了 opt-parser=true,同时官方项目提供了 resource-parser.js 作为资源解析器示例;实际配置中,部分规则资源也会使用该参数将其他格式转换为 Quantumult X 可识别的内容。因此,只有当资源提供方明确说明需要解析器时才启用,并确认 resource_parser_url 或资源解析方式可用。解析后的规则仍需检查策略名称、规则数量和实际命中结果。

不要把 opt-parser=true 机械复制到所有资源,也不要把服务器订阅的解析参数与分流规则的格式混为一谈。核验时可先用原生 Quantumult X 格式的规则文件测试,再单独测试需要解析器的资源。

DNS 写法与 geoip、ip-cidr 不命中的排查

官方 sample.conf 的 [dns] 示例支持用 server = 指定 DNS,也支持按域名指定服务器。最小测试片段如下:

[dns]
server = 223.5.5.5
server = 119.29.29.29
;server = /example.com/8.8.4.4
  1. 确认 Quantumult X Tunnel 已启用。
  2. 在请求记录中确认请求是否出现,以及是否显示 DNS 错误。
  3. 若是域名规则,先测试域名是否能解析。
  4. 若是 ip-cidr 或 geoip,确认请求不是直接使用无法被域名规则覆盖的纯 IP。
  5. 修改 DNS 后重新连接 Tunnel,再观察新的请求记录。

官方 sample.conf 明确说明,DNS 查询结果会用于评估过滤条件或连接直连策略;当流量通过代理服务器连接时,Quantumult X 可能不会知道相关域名的目标 IP。因此,不能只凭系统中的 ping 或浏览器表现判断规则是否命中,应以客户端请求记录中的命中规则和策略为准。

远程规则为空、请求走错策略时怎么查

  1. 规则集为空:检查 URL 是否返回规则文本,而不是登录页、错误页或空文件。
  2. 资源不更新:检查 enabled=true、更新间隔和 Tunnel 网络状态,先手动刷新资源。
  3. 规则命中但策略错误:核对规则行末策略名,以及远程资源是否设置了 force-policy。
  4. 远程规则完全不触发:先停用宽泛本地规则,再逐条启用远程资源。
  5. 应用仍然直连:查看请求记录是否有该应用的连接;若没有,确认 Tunnel 覆盖范围和应用是否使用了特殊连接方式。
  6. 代理出口不对:以请求记录中的最终策略或出口 IP 对比为准,不要只看策略组名称。

远程规则、远程脚本和 MITM 配置都应单独审查:查看原文内容、维护者和最近更新记录,确认规则是否包含不需要的重写或脚本;没有充分理由时,不要安装来源不明的 MITM 证书,也不要授予不必要的 HTTPS 解密权限。

Quantumult X、Clash、Surge、Loon 规则差异

常见概念对照
用途Quantumult XClash 常见写法Surge 常见写法Loon 常见写法
精确域名hostDOMAINDOMAINDOMAIN
域名后缀host-suffixDOMAIN-SUFFIXDOMAIN-SUFFIXDOMAIN-SUFFIX
域名关键词host-keywordDOMAIN-KEYWORDDOMAIN-KEYWORDDOMAIN-KEYWORD
远程规则集[filter_remote]rule-providers 加 RULE-SET远程规则或模块资源远程规则集或插件资源
默认兜底finalMATCHFINALFINAL

表格只用于概念迁移,不能直接复制整段配置。迁移前至少核对规则类型、远程资源声明位置和策略名称;尤其不要把 Clash 的 DOMAIN-SUFFIX、RULE-SET 或顶层 YAML 结构直接放入 Quantumult X 配置。

常见问题

filter_local 一定比 filter_remote 优先吗?

默认有效序列中,本地规则位于远程规则前,FINAL 在最后;但远程资源可以使用 inserted-resource=true 改变插入方式。因此,不能把“本地永远覆盖远程”当成绝对结论。遇到冲突时停用远程资源,再根据请求记录逐条恢复。

Quantumult X 会按规则具体程度自动择优吗?

不会按“越具体越优先”自动择优。规则按有效序列匹配,先命中的规则决定策略。宽泛的 host-keyword 可能先截获请求,所以应把范围大的规则谨慎放置,并用请求记录确认结果。

为什么 geoip 或 ip-cidr 规则不生效?

这类规则需要目标 IP 或 DNS 结果参与判断。先确认 Tunnel 已启用、DNS 能正常解析,再确认请求不是纯 IP 连接,并查看客户端记录中的实际命中项。

filter_remote 可以直接加 opt-parser=true 吗?

不能机械添加。官方 sample.conf 展示了服务器远程资源使用 opt-parser=true,项目同时提供资源解析器示例;只有当具体规则资源明确要求解析器时才启用,并检查解析后的规则和策略名称。

update-interval=86400 是什么意思?

它表示远程资源自动同步间隔为 86400 秒。官方 sample.conf 还说明,默认远程资源同步间隔也是 86400 秒;需要更长间隔时可改成其他秒数。

远程规则集显示为空怎么办?

先检查 URL 返回内容是否为有效规则文本,再确认资源启用、网络可达、策略名称存在,并手动刷新后查看资源详情。若返回登录页、错误页或空文件,客户端无法得到有效规则。

final 应该写 direct 还是 proxy?

看你的默认出口需求。未命中流量希望直连就写 final, direct;希望交给代理策略就写 final, proxy,其中 proxy 必须替换为真实存在的策略名称。

常见问题

filter_local 一定比 filter_remote 优先吗?

默认有效序列中本地规则位于远程规则前、FINAL 在最后;但 inserted-resource=true 可能改变远程资源的插入方式,冲突时应以请求记录中的实际命中项为准。

Quantumult X 会按规则具体程度自动择优吗?

不会。规则按有效序列匹配,先命中的规则决定策略;宽泛的 host-keyword 可能截获后续请求。

为什么 geoip 或 ip-cidr 规则不生效?

先确认 Tunnel 和 DNS 正常,再确认请求不是纯 IP 连接,并查看客户端记录中的命中规则。

filter_remote 可以直接加 opt-parser=true 吗?

不能机械添加。只有资源明确要求解析器时才启用,并检查解析后的规则格式、策略名称和实际命中结果。

update-interval=86400 是什么意思?

表示远程资源自动同步间隔为 86400 秒;官方 sample.conf 也将其列为默认同步间隔。

远程规则集为空怎么办?

检查 URL 是否返回有效规则文本、资源是否启用、策略是否存在,然后手动刷新并查看资源详情。

final 应该写 direct 还是 proxy?

未命中流量希望直连就使用 final, direct;希望交给代理就使用 final, proxy,并确保策略名称真实存在。

相关阅读

参考资料

  1. Quantumult X 官方 sample.conf
  2. Quantumult X 官方项目说明
  3. filter_local 中的 host-keyword 规则影响 filter_remote 的官方 Issue