138 lines
4.7 KiB
JavaScript
138 lines
4.7 KiB
JavaScript
// 铸渊专线 · 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;
|
||
}
|