1.第一种如果你是用自建节点+家宽。推荐按照下面的帖子操作。
如果机场使用,会将机场原有的规则及分组替换成新的。
https://linux.do/t/topic/1423875
2.第二种,机场+家宽。 Clash Verge (Mihomo)
会保留原有规则及分组。
// 分组名
const CHAIN_NAME = "chain AI";
const APPEND_PROXIES = [
{
name: "node",
type: "socks5",
server: "ip",
port: port,
username: "user",
password: "pass"
}
];
const RULE_PROVIDERS = {
ai: "https://fastly.jsdelivr.net/gh/MadisonWirtanen/WARP-Clash-with-ZJU-Rules@main/ai.yaml",
AI: "https://github.com/Repcz/Tool/raw/X/Clash/Rules/AI.list",
OpenAI: "https://cdn.jsdelivr.net/gh/zuluion/Clash-Template-Config@master/Filter/OpenAI.yaml",
Gemini: "https://cdn.jsdelivr.net/gh/zuluion/Clash-Template-Config@master/Filter/Gemini.yaml",
Claude: "https://cdn.jsdelivr.net/gh/zuluion/Clash-Template-Config@master/Filter/Claude.yaml"
};
const PREPEND_RULES = [
...Object.keys(RULE_PROVIDERS).map(k => `RULE-SET,${k},${CHAIN_NAME}`),
`DOMAIN-SUFFIX,oaistatic.com,${CHAIN_NAME}`,
`DOMAIN-SUFFIX,cdn.oaistatic.com,${CHAIN_NAME}`,
`DOMAIN-SUFFIX,gstatic.com,${CHAIN_NAME}`
];
function main(config) {
const firstGroupName = config["proxy-groups"]?.[0]?.name;
// 追加代理(注入 dialer-proxy)
config.proxies = config.proxies?.concat(
APPEND_PROXIES.map(p => ({ "dialer-proxy": firstGroupName, ...p }))
);
// 追加代理组
config["proxy-groups"]?.push({
name: CHAIN_NAME, type: "select", proxies: [
...APPEND_PROXIES.map(p => p.name),
firstGroupName,
"DIRECT"
]
});
// // 合并规则集
config["rule-providers"] = config["rule-providers"] || {};
Object.entries(RULE_PROVIDERS).forEach(([key, url]) =>
config["rule-providers"][key] = { type: "http", behavior: "classical", format: "yaml", path: `./rules/${key}.yaml`, interval: 86400, url }
);
// // 前置规则
config.rules?.unshift(...PREPEND_RULES);
return config;
}
参考
https://linux.do/t/topic/953740
https://linux.do/n/topic/445909?sort=old
1 个帖子 - 1 位参与者