Skip to content
本站精选 推广

网络服务推荐

  1. FlyBit套餐、设备限制以当前订单说明为准
  2. 99吧订购前核对流量、有效期与节点倍率
  3. 传送门核对客户端来源与系统兼容性
  4. 银河云先按实际网络验证可用性
  5. 小蜜蜂核对线路、套餐和业务适用条件
  6. TNTCloud折扣及套餐以下单页面为准
  7. 星岛梦带宽宣传不等于个人实测速率
  8. 灵猫网络历史测速仅供条件相近时参考
  9. 青云梯关注当前套餐与维护公告
  10. SslarCloud核对试用条件与售后渠道
  11. 唯兔云低价不代表长期服务保证

以下为推广入口,不代表安全、性能或持续经营保证。套餐以服务商当前说明为准,建议先短期验证。

查看选购与验证指南 →

FlClash 脚本分流配置教程

约 3426 字大约 11 分钟

FlClash脚本覆写分流规则DNS

2026-10-11

按照本站入门教程完成 FlClash 配置、能够正常上网后,在规则模式下,通常已经按机场订阅自带的规则进行分流。这套配置可以满足大部分日常使用场景,没有特殊需求就不必额外修改。

本文的分流脚本,主要让你给不同网站分别指定节点,而不是所有代理网站都跟着同一个节点切换。用的仍是你现有订阅里的节点,不需要再买一份订阅。例如:

  • ChatGPT、Claude 用节点 A:选择一个已经确认能访问这些服务的节点。
  • YouTube 用节点 B:选择一个观看视频体验合适的节点,不影响 AI 的节点选择。
  • GitHub 跟随默认节点 C:以后只需在“[本站]默认”里换节点,跟随默认的服务组也会一起改变;单独选了节点的 AI、YouTube 则不受影响。

设置后,FlClash 根据脚本列出的域名把请求送到对应分组,再使用你在组里选的节点。其他网站仍按机场原有规则处理,该直连还是走哪个代理组,由原配置决定。

本站脚本分流示例:AI 使用节点 A,YouTube 使用节点 B,GitHub 跟随默认节点 C,其他网站保持机场原有规则

脚本不会让节点自动变快,也不能保证解锁服务;它只改变指定域名的流量去向,不修改 DNS、TUN 或端口。机场配置如果已经有你需要的分组,可以直接使用;想自己增删网站、决定它们走哪个节点时,再按下面的教程设置。

下面按电脑端的操作顺序完成配置:复制并保存脚本 → 绑定订阅 → 选择节点 → 验证分流,DNS 按需检查。不同版本的菜单名称和图标可能略有差异。

准备好可用订阅

尚未安装或导入订阅,先看本站的FlClash 电脑端入门教程或FlClash 安卓入门教程。客户端来源可核对FlClash 项目说明。

开始前确认两件事:

  • 当前订阅能够正常联网。脚本只处理配置,不提供节点,也不能修复失效节点。
  • 已备份当前配置和自定义覆写。本脚本只新增服务组和域名规则,不修改 DNS、TUN、端口、IPv6 或节点信息。

第一步复制并保存脚本

  1. 点击左侧的扳手图标(工具),进入 进阶配置 → 脚本。
  2. 在脚本列表点击 添加,打开“未命名”编辑页。
  3. 点击下方代码块右上角的复制按钮。回到 FlClash,先点击代码编辑区,再按 Ctrl+A → Ctrl+V,用完整代码替换示例代码,不要把两份代码拼在一起。
  4. 点击右上角的保存图标,将名称填写为“我的分流”,写名称后点 确定。
  5. 返回脚本列表,确认出现“我的分流”,选中后再进行下一步。

FlClash 进阶配置中的脚本入口和编辑页右上角的保存图标

// mahu.blog 分流脚本 v1.0:只增加服务分组与域名规则,不修改 DNS、TUN 或端口。
function main(config) {
  // 可编辑区:在这里增删分组和域名,只写域名,不写网址或通配符。
  const prefix = "[本站]";
  const services = {
    AI: ["chatgpt.com", "openai.com", "oaistatic.com", "oaiusercontent.com", "claude.ai", "anthropic.com"],
    YouTube: ["youtube.com", "youtu.be", "googlevideo.com", "ytimg.com"],
    GitHub: ["github.com", "githubusercontent.com", "githubassets.com"],
  };

  if (!config || typeof config !== "object" || Array.isArray(config)) {
    throw new Error("没有读取到有效订阅配置");
  }
  if (!Array.isArray(config.rules) || config.rules.length === 0) {
    throw new Error("订阅没有基础规则,请先使用能够正常上网的完整配置");
  }
  if (config.proxies !== undefined && !Array.isArray(config.proxies)) {
    throw new Error("订阅的 proxies 格式不正确");
  }
  if (config["proxy-groups"] !== undefined && !Array.isArray(config["proxy-groups"])) {
    throw new Error("订阅的 proxy-groups 格式不正确");
  }
  const providers = config["proxy-providers"] || {};
  if (typeof providers !== "object" || Array.isArray(providers)) {
    throw new Error("订阅的 proxy-providers 格式不正确");
  }
  const nodes = config.proxies || [];
  const oldGroups = config["proxy-groups"] || [];
  const reserved = new Set(["DIRECT", "REJECT", "REJECT-DROP", "PASS", "COMPATIBLE", "GLOBAL"]);
  const nodeNames = [...new Set(nodes
    .filter(node => node && typeof node.name === "string" && node.name.trim()
      && !reserved.has(node.name) && !["direct", "reject", "pass"].includes(node.type))
    .map(node => node.name))];
  const providerNames = Object.keys(providers);
  if (nodeNames.length === 0 && providerNames.length === 0) {
    throw new Error("订阅没有可用节点或节点集合");
  }

  const defaultName = prefix + "默认";
  const serviceNames = Object.keys(services);
  const names = [defaultName, ...serviceNames.map(name => prefix + name)];
  const existing = new Set([...nodes, ...oldGroups].map(item => item && item.name));
  for (const name of names) {
    if (!name.trim() || /[,\r\n]/.test(name) || reserved.has(name)) {
      throw new Error("分组名称不能为空或包含逗号、换行");
    }
    if (existing.has(name)) {
      throw new Error("配置已有同名分组或节点:" + name + "。请更换 prefix,或从原订阅重新加载");
    }
  }
  if (new Set(names).size !== names.length) {
    throw new Error("服务分组不能与默认分组重名");
  }

  const routes = [];
  const domains = new Set();
  for (const service of serviceNames) {
    if (!Array.isArray(services[service]) || services[service].length === 0) {
      throw new Error("分组必须包含域名:" + service);
    }
    for (const value of services[service]) {
      const domain = typeof value === "string" ? value.trim().toLowerCase() : "";
      if (!/^(?:[a-z0-9-]+\.)+[a-z0-9-]+$/.test(domain)) {
        throw new Error("请只填写域名,不填写网址、路径或通配符:" + value);
      }
      if (domains.has(domain)) throw new Error("域名重复,请只保留一个分组:" + domain);
      domains.add(domain);
      routes.push({ domain, target: prefix + service });
    }
  }
  // 更具体的子域名先匹配,方便给某个服务单独指定策略。
  routes.sort((a, b) => b.domain.split(".").length - a.domain.split(".").length);
  const makeGroup = (name, choices) => {
    const group = { name, type: "select", proxies: choices, "empty-fallback": "REJECT" };
    if (providerNames.length) group.use = providerNames.slice();
    return group;
  };
  const groups = [makeGroup(defaultName, nodeNames.slice()),
    ...serviceNames.map(name => makeGroup(prefix + name, [defaultName, ...nodeNames]))];

  // 只替换这两份数组;机场节点、基础规则及其他设置均保留。
  return { ...config,
    "proxy-groups": [...groups, ...oldGroups],
    rules: [...routes.map(route => "DOMAIN-SUFFIX," + route.domain + "," + route.target), ...config.rules]
  };
}

保存脚本不等于启用脚本,还需要绑定订阅。

第二步绑定到你的订阅

  1. 点击左侧的文件夹图标(配置),找到正在使用的订阅卡片。
  2. 点击这张卡片右侧的 ⋮ 三点菜单 → 更多 → 覆写。
  3. 在 覆写模式 中点击 脚本 按钮。
  4. 在 覆写脚本 下点击“我的分流”这一行,确认名称左侧的圆形选项已选中。下方的“前往配置脚本”用于编辑脚本,不是启用按钮。
  5. 点击左上角的返回箭头退出覆写页,让配置应用。确认这份订阅仍是当前选中的配置,再点击左侧 代理,刷新一下,检查是否出现 [本站] 分组。

订阅卡片三点菜单中的更多入口以及覆写页面的脚本选项

右上角的 预览 只用于查看生成的配置,不代替选中脚本和返回应用。若分组尚未刷新,回到 仪表盘,用当前的启动/停止按钮停止后重新启动,再检查;无需删除订阅。

正常加载后,应能看到脚本生成的代理组。脚本会增加 [本站]默认、[本站]AI、[本站]YouTube、[本站]GitHub 四个分组。列出的域名优先按本站规则分流,其他请求继续按机场原有规则处理;域名后缀匹配也会覆盖其子域名。原理见mihomo 路由规则说明。

脚本只是一份精简域名列表,不保证覆盖每项服务的所有登录、接口或资源域名;遗漏的请求仍可能命中机场规则,可根据连接记录补充。

第三步设置代理组

  1. 点击左侧 仪表盘,在 出站模式 中选择 规则,不要使用“全局”或“直连”来验证脚本分流。
  2. 点击左侧 代理,再点击页面顶部的 [本站]默认 标签。
  3. 点击下方一个能够正常访问网站的实际节点卡片。卡片选中后会高亮,表示默认组使用这个节点。
  4. 依次点击顶部的 [本站]AI、[本站]YouTube、[本站]GitHub 标签,在每个分组里选择节点;想共用默认节点,就点击该组中的 [本站]默认 卡片。

各组的设置用途如下:

分组怎么设置
[本站]默认先选一个确认能用的节点,作为本站服务组的共同默认选择
[本站]AI选择能够访问目标 AI 服务的节点,也可以沿用本站默认
[本站]YouTube选择视频访问稳定的节点
[本站]GitHub选择能正常访问及下载的节点

代理页面顶部的本站分组标签以及下方可点击选择的节点卡片

不要选择“剩余流量”“距离下次重置”“套餐到期”这类信息卡片,它们不是正常的线路。截图中的 Timeout 表示该项延迟测试超时,绿色毫秒数是一次延迟结果,不代表带宽或长期稳定性;最终仍要用目标网站验证。

服务组可以选择具体节点,也可以选择 [本站]默认,跟随它的节点选择。脚本保留原来的机场代理组,但不会自动把节点按地区分类;含 proxy-providers 的订阅通过节点集合提供可选节点。配置项含义见mihomo 代理组说明。

系统代理和 TUN 决定哪些请求进入客户端,规则模式决定进入后的请求怎么走。不要为了分流同时乱改这些开关;需要开启 TUN 时,确认没有与其他 VPN 冲突,具体限制可查mihomo TUN 说明。

添加自己的分组

想给另一个网站单独选节点,只需编辑脚本开头的 services。例如在最后一项后面添加:

Google: ["google.com"],

把这一行放在 GitHub 项后面、services 的结束括号前面,保留上一项末尾的逗号。修改后点击右上角的保存图标。

在 services 中新增 Google 分组并保存脚本

保存并重新加载配置(刷新一下订阅),就会多出 [本站]Google 分组。填写域名即可,不加协议、路径或通配符;同一域名只能属于一个分组。更具体的子域名会优先匹配,例如单独配置 gemini.google.com 时,它会排在 google.com 前面。

第四步确认分流是否生效

以 GitHub 为例:

  1. 在浏览器里新打开 GitHub 页面。
  2. 回到 FlClash,点击左侧的 连接,不是“请求”。
  3. 点击右上角的放大镜图标,输入 github 筛选相关连接。除了 github.com,也可能看到 avatars.githubusercontent.com 等资源域名。
  4. 查看对应连接下面的标签:是否包含 [本站]GitHub,以及最终是否使用了第三步选择的节点。若选择了共用默认节点,还会看到 [本站]默认。

连接页面中 GitHub 和 YouTube 请求对应的本站代理组及最终节点

图中 GitHub 连接带有 [本站]GitHub → [本站]默认 → 节点 这条策略关系,而 YouTube 连接走 [本站]YouTube → 节点,说明这两类请求分别进入了对应服务组。右侧的圆圈斜杠按钮是关闭该连接,不是切换节点;选择节点应回到“代理”页面。

再用同样的方法检查 AI 或 YouTube。服务可能使用多个域名,应查看实际请求,不是只看一个首页。切换策略后重新发起请求,旧连接可能仍使用之前的节点。

如果完全没有连接记录,先检查应用是否进入代理;如果有记录却走了 DIRECT 或其他组,检查规则命中。详细解释见本站Clash 日志与连接排查。

第五步按需检查 DNS

本脚本不修改 DNS,也不包含“防泄露一键修复”。需要检查时,打开BrowserLeaks DNS 检测,比较启用脚本前后的解析服务器,查看是否符合自己的 DNS 设置。

如果出现不预期的本地运营商解析器,继续检查 TUN、浏览器安全 DNS 和系统 DNS。不能只凭国旗判断是否泄露,也不能把一次浏览器测试当作所有应用的安全保证。

DoH 表示 DNS 使用加密传输,不等于查询一定经过代理;具体解析策略可查mihomo DNS 文档。检测时不需要提交订阅链接或私人配置。

出错时按这个顺序恢复

  • 提示语法错误:确认复制了完整代码,没有连同 Markdown 的代码围栏一起粘贴。
  • 没有出现代理组:检查脚本是否保存、是否绑定当前订阅,以及配置错误提示。
  • 提示同名或重复域名:给 prefix 换一个前缀,或只保留该域名的一处分组设置。不要在已处理的配置上重复套用脚本。
  • 有代理组但打不开网页:先用原订阅确认节点可用,再检查规则和 DNS。
  • 启用后整个网络异常:停止连接,解除该订阅的脚本覆写,恢复备份和原来的代理开关,再测试。

不要通过关闭证书校验、清空全部配置或关闭防火墙来处理这类问题。

设置完成后保存一份可用版本。这里粘贴的是本地脚本,不会自动从网站更新;以后修改脚本或更新订阅,都重新检查一次分流结果。

本站精选 推广

网络服务推荐

  1. FlyBit套餐、设备限制以当前订单说明为准
  2. 99吧订购前核对流量、有效期与节点倍率
  3. 传送门核对客户端来源与系统兼容性
  4. 银河云先按实际网络验证可用性
  5. 小蜜蜂核对线路、套餐和业务适用条件
  6. TNTCloud折扣及套餐以下单页面为准
  7. 星岛梦带宽宣传不等于个人实测速率
  8. 灵猫网络历史测速仅供条件相近时参考
  9. 青云梯关注当前套餐与维护公告
  10. SslarCloud核对试用条件与售后渠道
  11. 唯兔云低价不代表长期服务保证

以下为推广入口,不代表安全、性能或持续经营保证。套餐以服务商当前说明为准,建议先短期验证。

查看选购与验证指南 →

Copyright © 2024-2026 Clash测评站