← Back

Just My Socks Clash Verge Rev 订阅导入教程

本教程适用于已经购买 Just My Socks 服务、需要在 Windows 或 macOS 上用 Clash 系客户端导入订阅的用户。文章不提供订阅链接——订阅地址需要你自己从 Just My Socks 用户中心获取。

购买注册教程:Just My Socks 注册购买教程


一、Just My Socks 支持哪些 Clash / Mihomo 客户端

  • Mihomo(Clash Meta):是目前常用的 Clash Meta 内核项目。它是内核,不是图形界面。
  • Clash Verge Rev:基于 Mihomo 的图形客户端,支持 Windows、macOS 和 Linux,仍在积极维护,是本文推荐的首选。

二、Clash Verge Rev 导入 Just My Socks 订阅

1.打开 Clash Verge Rev,进入左侧"订阅",在订阅输入框粘贴 Mihomo / Clash.Meta YAML 订阅地址

Clash Verge Rev 导入 Just My Socks 订阅

2.点击** 导入**,等待配置文件下载,右击下载好的配置文件,点击拓展脚本 粘贴下方分流规则脚本到拓展脚本里面,点击保存。

拓展脚本

拓展脚本

Just My Socks 目前下发的clash订阅很简洁,会导致所有流量包括国内网站流量走代理,添加拓展脚本可以分流,并且可以单独分配 ChatGPT、Claude、流媒体使用的节点。

// Just My Socks Clash/Mihomo 订阅 —— 补齐分流规则 + 服务分组
// 适用:Clash Verge Rev v1.7+(含 v2.x);用途:右键订阅卡片 →「编辑扩展脚本」整段粘贴
// 核查日期 2026-09-12
// 特点:ChatGPT / Claude / 流媒体 各自独立成组,组内可手动挑任意节点,也可选 JMS Auto 自动挑延迟最低的
//       规则集走 jsDelivr 镜像;订阅自带的分流规则保留,兜底 MATCH 由本脚本接管

const MAIN_GROUP = "🚀 节点选择"; // 总策略组(订阅里没有则自动创建)
const SERVICE_GROUPS = [
  { name: "🤖 ChatGPT", providers: ["openai"] },
  { name: "🧠 Claude", providers: ["claude"] },
  { name: "🎬 流媒体", providers: ["netflix", "disney", "youtube", "tiktok", "spotify", "hbo", "primevideo"] },
];

function main(config) {
  const groups = config["proxy-groups"] || (config["proxy-groups"] = []);
  const nameList = groups.map((g) => g && g.name);
  const has = (n) => nameList.includes(n);
  const norm = (s) => String(s).replace(/[\s_-]+/g, "").toLowerCase();

  // --- 1. 识别订阅自带的策略组:JMS Auto(按延迟自动选)/ JMS(手动选服务器)---
  const autoGroup = nameList.find((n) => norm(n).includes("jmsauto")) || nameList.find((n) => norm(n).includes("auto"));
  const manualGroup = nameList.find((n) => /^jms$/i.test(String(n).trim()));

  // 每个组内可选项:JMS Auto → 总策略组 → JMS → 直连;include-all 再把全部节点补进来供手动挑选
  const dedupe = (list) => list.filter((n, i) => n && list.indexOf(n) === i);
  // 服务组可以包含总组;总组不能包含自己(否则内核报 "loop is detected in ProxyGroup")
  const serviceProxies = dedupe([autoGroup, MAIN_GROUP, manualGroup, "DIRECT"]);
  const mainProxies = dedupe([autoGroup, manualGroup, "DIRECT"]);

  // --- 2. 总策略组:默认 JMS Auto,也可手动指定某个节点 ---
  if (!has(MAIN_GROUP)) {
    groups.unshift({ name: MAIN_GROUP, type: "select", "include-all": true, proxies: mainProxies });
  }

  // --- 3. 服务分组:ChatGPT / Claude / 流媒体 ---
  for (const service of SERVICE_GROUPS) {
    if (has(service.name)) continue;
    groups.push({ name: service.name, type: "select", "include-all": true, proxies: serviceProxies });
  }

  // --- 4. 规则集 ---
  const loyal = "https://fastly.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/";
  const bm7 = "https://fastly.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/";
  const common = { type: "http", format: "yaml", interval: 86400 };
  const definitions = {
    reject: { ...common, behavior: "domain", url: loyal + "reject.txt", path: "./ruleset/reject.yaml" },
    private: { ...common, behavior: "domain", url: loyal + "private.txt", path: "./ruleset/private.yaml" },
    direct: { ...common, behavior: "domain", url: loyal + "direct.txt", path: "./ruleset/direct.yaml" },
    gfw: { ...common, behavior: "domain", url: loyal + "gfw.txt", path: "./ruleset/gfw.yaml" },
    lancidr: { ...common, behavior: "ipcidr", url: loyal + "lancidr.txt", path: "./ruleset/lancidr.yaml" },
    cncidr: { ...common, behavior: "ipcidr", url: loyal + "cncidr.txt", path: "./ruleset/cncidr.yaml" },
  };
  for (const [key, file] of Object.entries({
    openai: "OpenAI/OpenAI.yaml",
    claude: "Claude/Claude.yaml",
    netflix: "Netflix/Netflix.yaml",
    disney: "Disney/Disney.yaml",
    youtube: "YouTube/YouTube.yaml",
    tiktok: "TikTok/TikTok.yaml",
    spotify: "Spotify/Spotify.yaml",
    hbo: "HBO/HBO.yaml",
    primevideo: "PrimeVideo/PrimeVideo.yaml",
  })) {
    definitions[key] = { ...common, behavior: "classical", url: bm7 + file, path: "./ruleset/" + key + ".yaml" };
  }
  config["rule-providers"] = Object.assign(config["rule-providers"] || {}, definitions);

  // --- 5. 规则:服务 → 直连 → 被墙;订阅自带规则保留,兜底 MATCH 重新拼在最后 ---
  const rules = [
    "RULE-SET,reject,REJECT",
    "RULE-SET,private,DIRECT",
    "RULE-SET,lancidr,DIRECT,no-resolve",
  ];
  for (const service of SERVICE_GROUPS) {
    for (const provider of service.providers) {
      const noResolve = provider.endsWith("cidr") ? ",no-resolve" : "";
      rules.push(`RULE-SET,${provider},${service.name}${noResolve}`);
    }
  }
  rules.push("RULE-SET,direct,DIRECT", "RULE-SET,cncidr,DIRECT,no-resolve", "GEOIP,CN,DIRECT,no-resolve");
  rules.push(`RULE-SET,gfw,${MAIN_GROUP}`);

  const kept = (config.rules || []).filter(
    (r) => typeof r === "string" && !/^MATCH/i.test(r) && !rules.includes(r),
  );
  config.rules = rules.concat(kept, ["MATCH," + MAIN_GROUP]);

  return config;
}

3.回到首页,选择代理组和节点,打开虚拟网卡模式(显示灰色需要先点击小扳手安装服务)

选择代理组和节点

可以使用 https://ip.skk.moe/split-tunnel 查看分流是否生效