Skip to content

订阅工作模式 ​

在「订阅配置」页面中,Fluxor 允许您在两种不同类型的订阅加载逻辑间切换,满足不同用户的多机场管理需求。


通用:节点是怎么拉下来的 ​

无论哪种模式,订阅数据的获取链路都是同一套:

  1. 直连优先:直接用 HTTP 请求订阅链接,按 Clash 明文 YAML 解析。此阶段限时 15 秒。
  2. 回退临时内核:若直连失败或被要求转换(例如链接返回的是 base64 订阅而非 Clash YAML),面板会临时启动一个独立的内核实例专门用于下载,完成后立即回收。此阶段同样限时 15 秒。
  3. 失败不重试:两阶段各自只尝试一次,不会自动重试,因此单次更新的最坏耗时约 30 秒,不会出现「卡好几分钟」的情况。
  4. 身份头透传:若订阅链接中带有 user:pass@ 形式的认证信息,会自动转换为请求头。

拉取到的节点文件统一存放在内核工作目录下的 proxies/ 目录中。

后台还会按每个订阅配置的 update_interval(节点更新)与 health_interval(健康测速)周期运行定时任务,两者都可以在订阅编辑弹窗中按需调整。


融合模式 (Merge) ​

当您在页面上切换至融合模式并保存时,后台程序的合并逻辑如下:

1. 节点打散与合并 ​

系统会并发向列表中所有启用的机场链接发起拉取。下载完成后,将每个订阅中的所有富强节点提取出来,剔除重名节点,最终混合并入同一个总的节点池中。

多订阅场景下建议为每个订阅设置节点前缀(编辑订阅时填写),生成的节点名会自动带上该前缀,便于在同一策略组内区分节点来源。

2. 生成统一的策略组 ​

系统会加载统一的规则分流模板(标准 或 详细),并将上述合并后的所有节点写入到预设的策略组(如 节点选择、谷歌服务、苹果服务 等)中。

  • 标准模版 (Base):根据国内外 IP 和网址进行分流,匹配速度快。
  • 详细模版 (Full):基于 ruleset 规则进行更细粒度的分组分流,覆盖流媒体、游戏、广告等场景。

融合模式下每个订阅以 proxy-provider 的形式被引用,因此节点列表由内核按需加载,面板无需把成百上千个节点字面量写进 config.yaml。

优势与适用场景 ​

  • 优势:各机场节点互补。如果其中一个机场因网络波动出现断连,您可以直接在网页的同一策略组内一键切到另一个机场的节点上,体验极其连贯。
  • 适用场景:适合手头拥有多个低价机场并希望自动整合为一个配置文件的用户。

3. 规则集自定义规则 ​

融合模式下,「订阅列表」标题右侧、「添加订阅」按钮左侧有一个「自定义规则」按钮(切换模式下不显示该按钮,切换模式改用每个订阅卡片上的入口)。它用于在面板模板生成的规则之上,补几条自己的分流规则。

弹窗内按规则集分成两个页面(标准 / 详细),两边各读各的:

维度标准 (base)详细 (full)
可选目标该档位模板自带的 5 个代理组(节点选择 / 手动选择 / 自动选择 / 漏网之鱼 / 全球直连)该档位模板自带的全部代理组(含香港/台湾/日本/新加坡/美国节点组、各流媒体组、私有网络、广告域名等)
可选规则集无(该档位没有 rule-providers,因此 RULE-SET 类型不可用)该档位的 31 个 rule-providers
规则存放merge_custom_rules.basemerge_custom_rules.full

两档的规则分开存放、分开生效:只有当前选中的规则集(「规则集」下拉框)里的规则会被写进 config.yaml,另一档的规则保持惰性,等切回该档位时再生效。因此弹窗里当前生效的那一页会标注「当前生效」。

其余交互与切换模式一致:规则类型白名单(选择类型后输入框给出取值示例)、目标下拉只列代理组(融合模式的节点由 proxy-providers 运行时加载,引用节点名会让内核拒绝加载整份配置)、插入位置 最前(默认)/ 末尾、写一条保存一条、每条可再编辑或用上下箭头调整顺序、目标失效的规则会被跳过并在列表中标注原因。

弹窗关闭时若改动的是当前生效的规则集,面板会给「规则」页打一个待刷新标记:等您切到规则页时才重新拉取规则列表(不切过去就不产生请求)。切换模式同理,只是判据换成「改动的是当前激活订阅」。

4. 流量隧道(tunnels) ​

同一个「自定义规则」弹窗也管流量隧道:把「类型」下拉拉到最末,选中 流量隧道 (tunnels),表单会整块换成隧道字段:

字段说明
监听类型tcp+udp(默认)/ tcp / udp,下拉选择
本地监听地址host:port,例如 127.0.0.1:8888、0.0.0.0:8888
目标转发地址host:port(IP、域名均可,例如 8.8.8.8:8888、example.com:443);也可以只写域名(例如 example.com),此时按 http 默认端口补成 example.com:80。裸 IP 不行:8.8.8.8 会被拒绝并提示补端口(域名有约定俗成的默认端口,IP 没有,猜一个等于把流量转到别处)。列表中展示的是补全后的实际目标
proxy关闭(不指定代理,按正常规则匹配选择出口)/ 该档位模板里的代理组。不提供 DIRECT / REJECT 等内置目标,也不提供代理节点(节点由 proxy-providers 运行时加载,静态校验看不到)

隧道列表排在规则列表下方、独立成段,每条都带:

  • 启停开关:关掉的隧道保留在列表里,但不会写进 config.yaml(既没生效也不会因它报错);
  • 编辑 / 上移 / 下移 / 删除:隧道没有「插入位置」的概念(它写在 rules 之外的 tunnels 块里),列表顺序只决定产物中每条隧道的先后;
  • 失效提示:监听地址不是 host:port、目标缺少端口(裸 IP / 未加方括号的 IPv6)、proxy 已不存在(机场改了组名)或与另一条隧道监听同一地址时,该条会标注「无效」与原因。

两档的隧道与规则一样分开存放、分开生效(merge_tunnels.base / merge_tunnels.full,只有当前档位那一份写进 config.yaml)。写一条保存一条:若当前档位正生效,改动会立即重建 config.yaml 并热重载内核。

隧道的 proxy 必须是配置里真实存在的名字:内核遇到不存在的名字会拒绝加载整份配置(tunnel proxy X not found)。面板在写入前逐条校验并跳过失效条目,同时把「有 N 条隧道因配置无效未写入配置」提示出来。隧道块固定写在 rule-providers / rules 之前。


切换模式 (Switch) ​

当您在页面上切换至切换模式并保存时,后台的运行逻辑将发生变化:

1. 物理隔离与独立激活 ​

每个机场订阅的数据都是独立的。在网页上,所有添加的订阅以独立卡片排列。当您点击某个卡片时,它会亮起蓝色边框,代表被当前激活(Active)。

2. 独立配置文件渲染 ​

点击「保存并应用」后,系统只会加载这唯一一个被激活订阅的节点,并且直接提取并沿用该订阅源自身所自带的内置策略组和分流规则(而不是使用面板预置的 标准 或 详细 模板)。其他未选中的订阅节点文件将只作为备份存放在 shares/Fluxor/proxies/ 目录下,不加载运行。

切换模式需要该订阅文件已经在本地就绪。若您刚添加订阅就切到切换模式,面板会自动先补拉一次,避免出现「选中的订阅没有节点」的空配置。

优势与适用场景 ​

  • 优势:完美保持机场原装分流逻辑与策略树,各机场间物理隔离,互不干扰,性能损耗最少。
  • 适用场景:适合购买了不同用途的高级专线机场(例如一个只用于外贸查资料,一个用于游戏加速),需要在不同场景间彻底切换隔离的用户。

3. 订阅自定义规则 ​

切换模式下,每个订阅卡片上「编辑」与「删除」之间有一个「自定义规则」按钮(仅在切换模式且该订阅已保存后出现)。它用于在不改动机场原装规则的前提下,为某个订阅追加几条自己的分流规则。

规则按订阅分别保存,互不影响:

能力说明
规则类型面板提供内核支持的类型白名单(DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、DOMAIN-REGEX、GEOSITE、GEOIP、IP-CIDR、IP-CIDR6、IP-SUFFIX、IP-ASN、SRC-IP-CIDR、SRC-PORT、DST-PORT、PROCESS-NAME、NETWORK、RULE-SET),选择类型后输入框会按该类型给出取值示例
目标可选该订阅自带的代理组,或内核内置的 DIRECT(直连)/ REJECT(拒绝)/ PASS(绕过)。不提供代理节点:节点名由机场随时改名或增删,而规则目标一旦解析不到,内核会拒绝加载整份配置
插入位置最前(默认):插到规则最前,优先级高于机场自带规则;末尾:插在最后一条 MATCH(漏网之鱼)之前,保留机场原装分流逻辑
保存方式写一条保存一条:添加 / 修改 / 上下移动 / 删除都立即持久化到 rules.json(切换模式按订阅、融合模式按档位、自定义模式独立存放),弹窗只需要「关闭」,没有整体「保存」按钮(单条规则的编辑用行内「保存」提交)
修改与排序每条规则都可用行内按钮再编辑(改类型/取值/目标/位置后点「保存」),或用上/下箭头调整顺序——顺序即优先级,对同插入位置的规则按列表顺序生效
生效时机若该订阅正是当前激活的订阅,改动会同时重写 config.yaml 并热重载内核;未激活订阅只更新其本地记录,等切换为激活订阅时再生效

规则与内核语法的对应关系(面板负责组装,无需手写整行):

DOMAIN-SUFFIX,ads.example.com,REJECT            → 插入位置:最前
IP-CIDR,1.1.1.0/24,🚀 节点选择,no-resolve       → 插入位置:末尾

插入位置决定优先级:最前 的规则会先于机场自带规则命中,末尾 的规则只作为机场分流未覆盖时的补充。列表中的顺序与内核里的生效顺序一致(最前 组在前、末尾 组在后),上/下移动只在同一插入位置的组内进行。

注意:写规则时请留意 RULE-SET 的取值必须来自该订阅自己的 rule-providers(面板以下拉框列出);MATCH 不支持自定义,它由机场配置提供并始终位于规则末位。

失效规则的处理:机场更新后代理组可能改名,此时旧规则的目标会解析不到。由于内核遇到无法解析的规则目标会拒绝加载整份配置(proxy [X] not found),面板在写入时会跳过这类规则并在运行日志中记录,保证 config.yaml 始终可用;这些规则仍会显示在弹窗列表中并标注失效原因,供您修正或删除。

4. 订阅流量隧道(tunnels) ​

同一个弹窗还管该订阅的流量隧道:把「类型」下拉拉到最末,选中 流量隧道,表单换成隧道字段(监听类型下拉 TCP+UDP/TCP/UDP、本地监听地址输入框、目标转发地址输入框、proxy 下拉「经代理转发」)。

目标转发地址既可以写 host:port(IP 或域名,如 8.8.8.8:8888、example.com:443),也可以只写域名(如 example.com)——后者按 http 默认端口补成 example.com:80,列表中展示补全后的实际目标;裸 IP(8.8.8.8、::1)会被拒绝并提示补端口。

proxy 可选 关闭(不指定代理,按正常规则匹配选择出口)或该订阅自带的代理组;不提供 DIRECT / REJECT,也不提供代理节点。隧道列表在规则列表下方独立成段,每条带启停开关(关闭的隧道不写进 config.yaml)与编辑 / 上移 / 下移 / 删除。

与规则一样按订阅分别保存、写一条保存一条:激活订阅的改动会立即重写 config.yaml 并热重载内核,未激活订阅只更新本地记录。隧道块固定写在 rule-providers / rules 之前(订阅文件本身保持原样,隧道只写进 config.yaml 副本)。

切换模式的自定义规则挂在订阅上(每个订阅一份),只有当前激活订阅的规则会进入 config.yaml。融合模式的自定义规则挂在规则集档位上(标准 / 详细各一份),见 融合模式 · 规则集自定义规则。


两种模式对比 ​

维度融合模式 (Merge)切换模式 (Switch)
节点来源所有启用的订阅合并去重仅当前激活的那一个订阅
策略组与规则使用面板内置模板(标准 / 详细)沿用订阅源自带的策略组与规则
多机场互补支持,同一策略组内即可切换不支持,需手动切换激活订阅
自定义规则挂在规则集档位上(标准 / 详细各一份,仅当前档位生效)挂在订阅上(每订阅一份,仅激活订阅生效)
流量隧道挂在规则集档位上(标准 / 详细各一份,仅当前档位生效)挂在订阅上(每订阅一份,仅激活订阅生效)
隔离性所有节点混在一起各订阅物理隔离,互不干扰
适用场景多个低价机场互补使用不同用途的专线机场彻底切换

修改模式后**必须点击「保存并应用」**才会重新生成 config.yaml 并热重载内核。