Clash Party 链式代理配置说明

2954 字
15 分钟
Clash Party 链式代理配置说明

Clash Party 链式代理配置说明#

本文适用于以下场景:使用 Sub-Store 合并多个机场订阅,并将合并后的订阅导入 Clash Party;普通机场节点作为第一跳,名称中含“住宅”的 SOCKS 节点作为第二跳出口。

最终链路为:

本机 → 机场入口节点 → 住宅 SOCKS 节点 → 目标网站

目标网站看到的是住宅 SOCKS 节点的出口 IP,而不是第一跳机场节点的 IP。

一、配置原理#

这套配置不需要在 Sub-Store 中单独写入 dialer-proxy。Sub-Store 只负责合并和输出节点,Clash Party 的 JavaScript 覆写会在订阅加载后,直接修改最终生成的配置。

脚本会检查全部节点,只对同时满足以下条件的节点添加链式拨号设置:

节点名称中包含“住宅”
节点类型为 socks5 或 socks

符合条件的节点会被动态添加:

dialer-proxy: "🛫 机场入口"

例如原节点为:

- name: "日本住宅ip"
type: socks5
server: 服务器地址
port: 端口

经过 JavaScript 覆写后,实际运行配置会变成:

- name: "日本住宅ip"
type: socks5
server: 服务器地址
port: 端口
dialer-proxy: "🛫 机场入口"

这表示“日本住宅ip”在连接自己的 SOCKS 服务器时,不直接从本机连接,而是先通过 🛫 机场入口 当前选中的节点。

因此,真正建立两组之间联系的并不是策略组名称,也不是 🚀 Proxy 中的选择关系,而是住宅节点内部的:

dialer-proxy: "🛫 机场入口"

二、三个核心代理组#

脚本中有三个与链式代理直接相关的策略组。

🚀 Proxy#

这是总出口选择组。

其中既包含:

🧦 SOCKS落地

也包含订阅中的普通节点。

所以它同时支持两种使用方式:

选择“🧦 SOCKS落地”=使用链式代理
选择普通机场节点=不使用链式代理

🛫 机场入口#

这是链式代理的第一跳。

该组使用:

"include-all": true

所以会显示订阅中的全部实际节点。

实际使用时,应在这里选择一个普通机场节点,例如:

美国1
美国2
香港01
日本01

不要在入口组中选择名称含“住宅”的 SOCKS 节点,否则可能形成异常调用或循环。

🧦 SOCKS落地#

这是链式代理的第二跳。

该组通过:

filter: "住宅"

只显示名称中含“住宅”的节点,例如:

日本住宅ip
美国住宅01
洛杉矶住宅

这些住宅 SOCKS 节点已经被 JavaScript 自动添加:

dialer-proxy: "🛫 机场入口"

所以它们会通过第一跳节点建立连接。

三、如何使用#

使用链式代理时,在 Clash Party 中这样选择:

🛫 机场入口:选择普通机场节点,例如“美国1”
🧦 SOCKS落地:选择住宅节点,例如“日本住宅ip”
🚀 Proxy:选择“🧦 SOCKS落地”

实际链路为:

本机
美国1
日本住宅ip
目标网站

如果 AI 分流组仍然使用 🚀 Proxy,则继续这样选择:

🤖 OpenAI → 🤖 AI分流
🤖 AI分流 → 🚀 Proxy
🚀 Proxy → 🧦 SOCKS落地

不使用链式代理时,直接在 🚀 Proxy 中选择普通节点:

🚀 Proxy → 美国2

实际链路为:

本机 → 美国2 → 目标网站

此时不会经过 🛫 机场入口🧦 SOCKS落地

需要注意:如果直接在 🚀 Proxy 中选择名称含“住宅”的 SOCKS 节点,该节点本身已经带有 dialer-proxy,仍然会走链式代理。若要完全关闭链式代理,应选择普通机场节点。

四、配置和排查要点#

  1. 住宅节点名称必须包含“住宅”,否则不会进入 🧦 SOCKS落地,也不会被脚本添加 dialer-proxy
  2. 住宅节点类型应为 socks5socks。在 Mihomo 中,常见 SOCKS 节点通常显示为 Socks5
  3. 🛫 机场入口 中应选择普通机场节点,不要选择住宅 SOCKS 节点。
  4. 🚀 Proxy 选择 🧦 SOCKS落地 时才是链式代理;选择普通节点时是单节点代理。
  5. 🧦 SOCKS落地 为空,优先检查节点名称是否包含“住宅”。
  6. 若可以连接但出口 IP 仍是机场节点,检查运行配置中的住宅节点是否出现:
dialer-proxy: "🛫 机场入口"
  1. 若完全无法访问,可能是入口节点失效、SOCKS 节点失效、账号密码错误,或两跳协议组合不兼容。
  2. 刷新 Sub-Store 订阅后,应重新刷新 Clash Party 配置,确保 JavaScript 覆写再次执行。
  3. 这份脚本会完整覆盖 proxy-groupsrulesrule-providers,因此后续新增分流规则时,应直接在本脚本中修改。
  4. 脚本中的规则集地址依赖网络访问,首次加载时需要能够下载对应的 .mrs 文件。

五、完整 JavaScript 覆写脚本#

下面是完整脚本,可直接粘贴到 Clash Party 的 JavaScript 覆写中。

function main(config) {
/*
* =========================================================
* 一、基础设置
* =========================================================
*/
config["mixed-port"] = 7890;
config.ipv6 = true;
config["allow-lan"] = true;
config["unified-delay"] = false;
config["tcp-concurrent"] = true;
config["find-process-mode"] = "strict";
config["global-client-fingerprint"] = "chrome";
/*
* =========================================================
* 二、配置保存
* =========================================================
*/
config.profile = {
...(config.profile || {}),
"store-selected": true,
"store-fake-ip": true
};
/*
* =========================================================
* 三、流量嗅探
* =========================================================
*/
config.sniffer = {
enable: true,
sniff: {
HTTP: {
ports: [80, "8080-8880"],
"override-destination": true
},
TLS: {
ports: [443, 8443]
},
QUIC: {
ports: [443, 8443]
}
},
"skip-domain": [
"Mijia Cloud",
"+.push.apple.com"
]
};
/*
* =========================================================
* 四、TUN 设置
* =========================================================
*/
config.tun = {
enable: true,
stack: "mixed",
"dns-hijack": [
"any:53",
"tcp://any:53"
],
"auto-route": true,
"auto-redirect": true,
"auto-detect-interface": true
};
/*
* =========================================================
* 五、DNS 设置
* =========================================================
*/
config.dns = {
enable: true,
ipv6: true,
"enhanced-mode": "fake-ip",
"fake-ip-filter": [
"*",
"+.lan",
"+.local",
"+.market.xiaomi.com"
],
"default-nameserver": [
"tls://223.5.5.5",
"tls://223.6.6.6"
],
nameserver: [
"https://doh.pub/dns-query",
"https://dns.alidns.com/dns-query"
]
};
/*
* =========================================================
* 六、为住宅 SOCKS 节点添加 dialer-proxy
* =========================================================
*
* 匹配条件:
* 1. 节点名称中含“住宅”
* 2. 节点类型为 socks5 或 socks
*
* 添加后实际链路:
* 电脑 → 机场入口 → 住宅 SOCKS → 目标网站
*/
function addDialerProxy(proxyList) {
if (!Array.isArray(proxyList)) {
return;
}
proxyList.forEach((proxy) => {
if (!proxy || typeof proxy !== "object") {
return;
}
const name = String(proxy.name || "");
const type = String(proxy.type || "").toLowerCase();
const isResidential = name.includes("住宅");
const isSocks = type === "socks5" || type === "socks";
if (isResidential && isSocks) {
proxy["dialer-proxy"] = "🛫 机场入口";
}
});
}
// 处理订阅配置中直接存在的节点
addDialerProxy(config.proxies);
// 兼容少数使用内联 payload 的代理提供者
if (
config["proxy-providers"] &&
typeof config["proxy-providers"] === "object"
) {
Object.values(config["proxy-providers"]).forEach((provider) => {
if (provider && Array.isArray(provider.payload)) {
addDialerProxy(provider.payload);
}
});
}
/*
* =========================================================
* 七、代理策略组
* =========================================================
*/
config["proxy-groups"] = [
/*
* 总代理组
*
* 选择“🧦 SOCKS落地”时启用链式代理。
* 也保留全部普通节点,可以临时使用单节点。
*/
{
name: "🚀 Proxy",
type: "select",
proxies: [
"🧦 SOCKS落地"
],
"include-all": true,
"exclude-type": "direct"
},
/*
* 第一跳:机场入口
*
* 按你的要求显示所有实际节点。
* 这里也会显示名称含“住宅”的节点,
* 但实际使用时不要在机场入口中选择住宅节点。
*/
{
name: "🛫 机场入口",
type: "select",
"include-all": true,
"exclude-type": "direct"
},
/*
* 第二跳:住宅 SOCKS 落地
*/
{
name: "🧦 SOCKS落地",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "住宅"
},
{
name: "🤖 AI分流",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区"
],
"include-all": true,
"exclude-type": "direct"
},
{
name: "🤖 OpenAI",
type: "select",
proxies: [
"🤖 AI分流",
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区"
]
},
{
name: "✨ Claude",
type: "select",
proxies: [
"🤖 AI分流",
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区"
]
},
{
name: "💎 Gemini",
type: "select",
proxies: [
"🤖 AI分流",
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区"
]
},
{
name: "🪟 Copilot",
type: "select",
proxies: [
"🤖 AI分流",
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区"
]
},
{
name: "🔎 Google",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🐙 GitHub",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🪟 微软服务",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🍎 苹果服务",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "✈️ Telegram",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🐦 Twitter",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🎵 TikTok",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "📺 YouTube",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🎬 Netflix",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🎧 Spotify",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "📹 哔哩哔哩",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🦄 巴哈姆特",
type: "select",
proxies: [
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🌍 Global",
type: "select",
proxies: [
"🚀 Proxy",
"🧦 SOCKS落地",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区",
"DIRECT"
]
},
{
name: "🏠 国内网站",
type: "select",
proxies: [
"DIRECT",
"🚀 Proxy",
"🇺🇸 美国",
"🇭🇰 香港",
"🇯🇵 日本",
"🇸🇬 新加坡",
"🇹🇼 台湾",
"🌐 其它地区"
]
},
/*
* 地区筛选组
*/
{
name: "🇭🇰 香港",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "(?i)(香港|港|hk|hong kong|hongkong)"
},
{
name: "🇺🇸 美国",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "(?i)(美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|us|united states|unitedstates)"
},
{
name: "🇯🇵 日本",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "(?i)(日本|川日|东京|大阪|泉日|埼玉|沪日|深日|jp|japan)"
},
{
name: "🇸🇬 新加坡",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "(?i)(新加坡|坡|狮城|sg|singapore)"
},
{
name: "🇹🇼 台湾",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "(?i)(台|tw|taiwan|tai)"
},
{
name: "🌐 其它地区",
type: "select",
"include-all": true,
"exclude-type": "direct",
filter: "(?i)^(?!.*(?:美国|美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|us|united states|unitedstates|香港|港|hk|hong kong|hongkong|日本|川日|东京|大阪|泉日|埼玉|沪日|深日|jp|japan|新加坡|坡|狮城|sg|singapore|台|tw|taiwan|tai)).*"
}
];
/*
* =========================================================
* 八、分流规则
* =========================================================
*/
config.rules = [
"RULE-SET,private_ip,DIRECT,no-resolve",
"RULE-SET,openai_domain,🤖 OpenAI",
"DOMAIN-SUFFIX,claude.ai,✨ Claude",
"DOMAIN-SUFFIX,anthropic.com,✨ Claude",
"DOMAIN-SUFFIX,anthropicusercontent.com,✨ Claude",
"DOMAIN,gemini.google.com,💎 Gemini",
"DOMAIN,aistudio.google.com,💎 Gemini",
"DOMAIN,generativelanguage.googleapis.com,💎 Gemini",
"DOMAIN,copilot.microsoft.com,🪟 Copilot",
"RULE-SET,github_domain,🐙 GitHub",
"RULE-SET,google_domain,🔎 Google",
"RULE-SET,apple_domain,🍎 苹果服务",
"RULE-SET,microsoft_domain,🪟 微软服务",
"RULE-SET,telegram_domain,✈️ Telegram",
"RULE-SET,twitter_domain,🐦 Twitter",
"RULE-SET,tiktok_domain,🎵 TikTok",
"RULE-SET,youtube_domain,📺 YouTube",
"RULE-SET,netflix_domain,🎬 Netflix",
"RULE-SET,spotify_domain,🎧 Spotify",
"RULE-SET,bilibili_domain,📹 哔哩哔哩",
"RULE-SET,bahamut_domain,🦄 巴哈姆特",
"RULE-SET,cn_domain,🏠 国内网站",
"RULE-SET,geolocation-!cn,🌍 Global",
"RULE-SET,google_ip,🔎 Google",
"RULE-SET,netflix_ip,🎬 Netflix",
"RULE-SET,telegram_ip,✈️ Telegram",
"RULE-SET,twitter_ip,🐦 Twitter",
"RULE-SET,cn_ip,🏠 国内网站",
"MATCH,🚀 Proxy"
];
/*
* =========================================================
* 九、规则集提供者
* =========================================================
*/
const domainProvider = (url) => ({
type: "http",
interval: 86400,
behavior: "domain",
format: "mrs",
url
});
const ipProvider = (url) => ({
type: "http",
interval: 86400,
behavior: "ipcidr",
format: "mrs",
url
});
config["rule-providers"] = {
openai_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/openai.mrs"
),
github_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/github.mrs"
),
google_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/google.mrs"
),
apple_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/apple.mrs"
),
microsoft_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/microsoft.mrs"
),
telegram_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/telegram.mrs"
),
twitter_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/twitter.mrs"
),
tiktok_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/tiktok.mrs"
),
youtube_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/youtube.mrs"
),
netflix_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/netflix.mrs"
),
spotify_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/spotify.mrs"
),
bilibili_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/bilibili.mrs"
),
bahamut_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/bahamut.mrs"
),
cn_domain: domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.mrs"
),
"geolocation-!cn": domainProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/geolocation-!cn.mrs"
),
private_ip: ipProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/private.mrs"
),
cn_ip: ipProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/cn.mrs"
),
google_ip: ipProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/google.mrs"
),
netflix_ip: ipProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/netflix.mrs"
),
twitter_ip: ipProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/twitter.mrs"
),
telegram_ip: ipProvider(
"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/telegram.mrs"
)
};
/*
* 必须返回处理后的配置
*/
return config;
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Clash Party 链式代理配置说明
https://firefly-mu-weld.vercel.app/posts/clash-party-chain-proxy/
作者
Daisy
发布于
2026-06-10
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Daisy
Hello, I'm Daisy.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签

文章目录