zhuyuan-ice-gl-zy001/TRAE-DEV-20260820/agent-training/tasks/20260823-gz-relay/verge-script-v2.js

138 lines
4.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 铸渊专线 · Clash Verge 订阅增强脚本 v2(广州中转更新稿)
// v1 功能保留:注入冰朔的两个新加坡 VLESS+Reality 专线节点 + 智能接管组
// v2 新增(2026-08-23):
// - 注入广州中转节点「铸渊-大脑-粤快」(43.139.217.141:8444)、「铸渊-面孔-粤快」(43.139.217.141:8443)
// 中转链路:广州 BS-GZ-006 realm → 新加坡落地,实测握手 ~350ms、零丢包
// - 新增 🛡️ 粤港快线(url-test):两个中转节点自动择优
// - 🛡️ 专线接管 成员调整为:粤港快线(中转优先) → ♻️自动选择 → SG 直连兜底
// - 🚀节点选择 最前面插入 🛡️ 粤港快线
// 节点参数:中转节点的 uuid/pbk/sid 跟随各自新加坡落地节点,与中转端口无关
// 全程幂等:重复执行不重复添加、不改变已收敛结构
function main(config, profileName) {
const zyProxies = [
{
name: "铸渊-大脑(SG)",
type: "vless",
server: "43.156.237.110",
port: 8443,
uuid: "6f0516d4-8650-4fba-b041-dfb4f11a7490",
network: "tcp",
udp: true,
tls: true,
flow: "xtls-rprx-vision",
servername: "gateway.icloud.com",
"reality-opts": {
"public-key": "BUxM5T3BgRewhAJ1HkM5k42dPCvFNFc_gJskQO9IqUY",
"short-id": "15f1c09526e79290",
},
"client-fingerprint": "chrome",
},
{
name: "铸渊-面孔(SG)",
type: "vless",
server: "43.134.16.246",
port: 8443,
uuid: "66f255bc-7c81-4114-992c-5b965962f90f",
network: "tcp",
udp: true,
tls: true,
flow: "xtls-rprx-vision",
servername: "gateway.icloud.com",
"reality-opts": {
"public-key": "-UjfjrYKOoqN_vjGwaCxJFdI_7NjdnR5jU8znIO0UzI",
"short-id": "058ed04d88e47734",
},
"client-fingerprint": "chrome",
},
{
name: "铸渊-大脑-粤快",
type: "vless",
server: "43.139.217.141",
port: 8444,
uuid: "6f0516d4-8650-4fba-b041-dfb4f11a7490",
network: "tcp",
udp: true,
tls: true,
flow: "xtls-rprx-vision",
servername: "gateway.icloud.com",
"reality-opts": {
"public-key": "BUxM5T3BgRewhAJ1HkM5k42dPCvFNFc_gJskQO9IqUY",
"short-id": "15f1c09526e79290",
},
"client-fingerprint": "chrome",
},
{
name: "铸渊-面孔-粤快",
type: "vless",
server: "43.139.217.141",
port: 8443,
uuid: "66f255bc-7c81-4114-992c-5b965962f90f",
network: "tcp",
udp: true,
tls: true,
flow: "xtls-rprx-vision",
servername: "gateway.icloud.com",
"reality-opts": {
"public-key": "-UjfjrYKOoqN_vjGwaCxJFdI_7NjdnR5jU8znIO0UzI",
"short-id": "058ed04d88e47734",
},
"client-fingerprint": "chrome",
},
];
// 1. 注入节点(幂等,防重复)
config.proxies = config.proxies || [];
const existing = new Set(config.proxies.map((p) => p.name));
for (const p of zyProxies) {
if (!existing.has(p.name)) config.proxies.push(p);
}
const groups = config["proxy-groups"] || [];
const relayLine = "🛡️ 粤港快线";
const relayMembers = ["铸渊-大脑-粤快", "铸渊-面孔-粤快"];
const takeOver = "🛡️ 专线接管";
const takeOverMembers = [relayLine, "♻️自动选择", "铸渊-大脑(SG)", "铸渊-面孔(SG)"];
const testUrl = "http://www.gstatic.com/generate_204";
// 2. 新增粤港快线组:中转节点自动择优(幂等,已存在则不动)
if (!groups.some((g) => g.name === relayLine)) {
groups.unshift({
name: relayLine,
type: "url-test",
proxies: [...relayMembers],
url: testUrl,
interval: 60,
});
}
// 3. 专线接管组:成员改为中转优先 → 订阅自动选择 → SG 直连兜底
// 已存在(如 v1 残留)则收敛为新成员列表;赋值内容固定,重复执行结果不变
const takeOverGroup = groups.find((g) => g.name === takeOver);
if (takeOverGroup) {
takeOverGroup.type = "fallback";
takeOverGroup.proxies = [...takeOverMembers];
takeOverGroup.url = testUrl;
takeOverGroup.interval = 60;
} else {
groups.unshift({
name: takeOver,
type: "fallback",
proxies: [...takeOverMembers],
url: testUrl,
interval: 60,
});
}
// 4. 插入主选择组最前面:粤港快线居首,接管组次之,两个 SG 节点供手动固定
const mainGroup = groups.find((g) => g.name === "🚀节点选择");
if (mainGroup) {
const insert = [relayLine, takeOver, "铸渊-大脑(SG)", "铸渊-面孔(SG)"].filter(
(n) => !mainGroup.proxies.includes(n)
);
mainGroup.proxies.unshift(...insert);
}
config["proxy-groups"] = groups;
return config;
}