Skip to content

Instantly share code, notes, and snippets.

@dahaha-365
Last active December 3, 2024 08:22
Show Gist options
  • Save dahaha-365/0b8beb613f8d1ee656fe1f21e1a07959 to your computer and use it in GitHub Desktop.
Save dahaha-365/0b8beb613f8d1ee656fe1f21e1a07959 to your computer and use it in GitHub Desktop.
Clash Verge Rev 全局扩展脚本(懒人脚本配置)

Clash Verge Rev 全局脚本 懒人配置 / Mihomo Party 覆写脚本

在gist里维护太麻烦了,这个项目迁移到YaNet项目里。

https://github.com/dahaha-365/YaNet/tree/main/Mihomo

这个脚本的目的是:把机场的订阅配置转换成统一的、容易管理的配置文件。主要思路有下面几点:

  1. 基于地区分组,并且可以自动伸缩。也就是当订阅里没有这个地区的节点时就不生成这个策略组,这点是全局配置无法实现的。
  2. 地区策略组排除高倍率节点。目前使用正则提取倍率,但是通用的正则很难写,欢迎支招。
  3. 完全重写分流规则。某些机场的分流规则其实很烂,本脚本重写时尽量采用geoip/geositedomainipcird这几种高效规则。分流逻辑是默认全局直连,在匹配 Match 规则前通过规则集匹配将需要代理的流量进行分流。
  4. 完全重写 DNS 分流规则。分流逻辑是:默认用foreignDNS,通过geoip/geosite使国内网站用chinaDNS进行解析,为了方便我和某些开发者,geoip:privategeosite:private使用系统 dns 解析。这样会不会有 DNS 泄漏?我不知道。
  5. 广告过滤全局拦截这两个策略其实是聊胜于无的。
  6. 有些你认为多余或者不认同的配置,自行修改或删除吧。
  7. 全局脚本和全局配置,用其中一种就可以了,两者都使用不会有 1+1>1 的效果。
  8. 使用这个脚本会有某些策略组测速很慢的现象,因为不是用 204 的测速链接,不用理会,这是正常的。

Ps:这个全局脚本随时会根据自己碰到的坑进行调整

AD:适用于 Loon 的懒人配置

AD:适用于 Stash 的懒人配置

Big Changelog:

  • 2024-09-27:添加的功能控制开关,增加策略组和分流规则
  • 2024-09-24:未符合分类规则的节点全扔进其他节点策略组里
  • 2024-09-22:大更新,优化图标、策略组,提升易用性

效果图

如上图,这个脚本的目标就是把一块钱的订阅装成两百五块的样子。

/***
* Clash Verge Rev 全局扩展脚本(懒人配置)/ Mihomo Party 覆写脚本
* URL: https://gist.github.com/dahaha-365/0b8beb613f8d1ee656fe1f21e1a07959
*/
/**
* 整个脚本的总开关,在Mihomo Party使用的话,请保持为true
* true = 启用
* false = 禁用
*/
const enable = true;
/**
* 分流规则配置,会自动生成对应的策略组
* 设置的时候可遵循“最小,可用”原则,把自己不需要的规则全禁用掉,提高效率
* true = 启用
* false = 禁用
*/
const ruleOptions = {
apple: true, // 苹果服务
microsoft: true, // 微软服务
google: true, // Google服务
openai: true, // 国外AI和GPT
spotify: true, // Spotify
youtube: true, // YouTube
bahamut: true, // 巴哈姆特/动画疯
netflix: true, // Netflix网飞
tiktok: true, // 国际版抖音
disney: true, // 迪士尼
pixiv: true, // Pixiv
hbo: true, // HBO
biliintl: true, // 哔哩哔哩东南亚
tvb: true, // TVB
hulu: true, // Hulu
primevideo: true, // 亚马逊prime video
telegram: true, // Telegram通讯软件
line: true, // Line通讯软件
whatsapp: true, // Whatsapp
games: true, // 游戏策略组
japan: true, // 日本网站策略组
tracker: true, // 网络分析和跟踪服务
ads: true, // 常见的网络广告
};
/**
* 地区配置,通过regex匹配代理节点名称
* regex会有一定概率误判,自己调整一下吧
* excludeHighPercentage是排除高倍率节点的开关,只对地区分组有效
* 倍率大于regions里的ratioLimit值的代理节点会被排除
*/
const regionOptions = {
excludeHighPercentage: true,
regions: [
{
name: "HK香港",
regex: /港|🇭🇰|hk|hongkong|hong kong/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Hong_Kong.png",
},
{
name: "US美国",
regex: /美|🇺🇸|us|united state|america/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/United_States.png",
},
{
name: "JP日本",
regex: /日本|🇯🇵|jp|japan/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Japan.png",
},
{
name: "KR韩国",
regex: /韩|🇰🇷|kr|korea/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Korea.png",
},
{
name: "SG新加坡",
regex: /新加坡|🇸🇬|sg|singapore/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Singapore.png",
},
{
name: "CN中国大陆",
regex: /中国|🇨🇳|cn|china/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/China_Map.png",
},
{
name: "TW台湾省",
regex: /台湾|🇹🇼|tw|taiwan|tai wan/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/China.png",
},
{
name: "GB英国",
regex: /英|🇬🇧|uk|united kingdom|great britain/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/United_Kingdom.png",
},
{
name: "DE德国",
regex: /德国|🇩🇪|de|germany/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Germany.png",
},
{
name: "MY马来西亚",
regex: /马来|🇩🇪|my|malaysia/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Malaysia.png",
},
{
name: "TK土耳其",
regex: /土耳其|🇹🇷|tk|turkey/i,
ratioLimit: 2,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Turkey.png",
},
],
};
/**
* 其实两组DNS就够了,一组国内,一组国外
* defaultDNS是用来解析DNS的,必须为IP
* DNS最好不要超过两个,从业界某知名APP的文档里学的
*/
const defaultDNS = ["tls://1.12.12.12", "tls://223.5.5.5"];
const chinaDNS = ["119.29.29.29", "180.184.1.1"];
const foreignDNS = ["tls://8.8.8.8", "tls://1.1.1.1", "tls://9.9.9.9"];
/**
* DNS相关配置
*/
const dnsConfig = {
enable: true,
listen: ":53",
ipv6: true,
"prefer-h3": true,
"use-hosts": true,
"use-system-hosts": true,
"respect-rules": true,
"enhanced-mode": "fake-ip",
"fake-ip-range": "198.18.0.1/16",
"fake-ip-filter": ["*", "+.lan", "+.local", "+.market.xiaomi.com"],
"default-nameserver": [...defaultDNS],
nameserver: [...foreignDNS],
"proxy-server-nameserver": [...foreignDNS],
/**
* 这里对域名解析进行分流
* 由于默认dns是国外的了,只需要把国内ip和域名分流到国内dns
*/
"nameserver-policy": {
"geosite:private": "system",
"geosite:cn,steam@cn,category-games@cn,microsoft@cn,apple@cn": chinaDNS,
},
};
// 规则集通用配置
const ruleProviderCommon = {
type: "http",
format: "yaml",
interval: 86400,
};
// 代理组通用配置
const groupBaseOption = {
interval: 300,
timeout: 3000,
url: "http://cp.cloudflare.com/generate_204",
lazy: true,
"max-failed-times": 3,
hidden: false,
};
const ruleProviders = new Map();
ruleProviders.set("applications", {
...ruleProviderCommon,
behavior: "classical",
format: "text",
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/applications.list",
path: "./ruleset/DustinWin/applications.list",
});
const rules = ["RULE-SET,applications,下载软件"];
// 程序入口
function main(config) {
const proxyCount = config?.proxies?.length ?? 0;
const proxyProviderCount =
typeof config?.["proxy-providers"] === "object"
? Object.keys(config["proxy-providers"]).length
: 0;
if (proxyCount === 0 && proxyProviderCount === 0) {
throw new Error("配置文件中未找到任何代理");
}
let regionProxyGroups = [];
let otherProxyGroups = config.proxies.map((b) => {
return b.name;
});
config["allow-lan"] = true;
config["bind-address"] = "*";
config["mode"] = "rule";
// 覆盖原配置中DNS配置
config["dns"] = dnsConfig;
config["profile"] = {
"store-selected": true,
"store-fake-ip": true,
};
config["unified-delay"] = true;
config["tcp-concurrent"] = true;
/**
* 这个值设置大点能省电,笔记本和手机需要关注一下
*/
config["keep-alive-interval"] = 1800;
config["find-process-mode"] = "strict";
config["geodata-mode"] = true;
/**
* 适合小内存环境,如果在旁路由里运行可以改成standard
*/
config["geodata-loader"] = "memconservative";
config["geo-auto-update"] = true;
config["geo-update-interval"] = 24;
/**
* 不开域名嗅探的话,日志里只会记录请求的ip,对查找问题不方便
* override-destination默认值是true,但是个人建议全局设为false,否则某些应用会出现莫名其妙的问题
* Mijia Cloud跳过是网上抄的
*/
config["sniffer"] = {
enable: true,
"force-dns-mapping": true,
"parse-pure-ip": true,
"override-destination": false,
sniff: {
TLS: {
ports: [443, 8443],
},
HTTP: {
ports: [80, "8080-8880"],
},
QUIC: {
ports: [443, 8443],
},
},
"force-domain": [],
"skip-domain": ["Mijia Cloud", "+.oray.com"],
};
/**
* write-to-system如果设为true的话,有可能出现电脑时间不对的问题
*/
config["ntp"] = {
enable: true,
"write-to-system": false,
server: "cn.ntp.org.cn",
};
/**
* 总开关关闭时不处理策略组
*/
if (!enable) {
return config;
}
regionOptions.regions.forEach((region) => {
/**
* 提取倍率符合要求的代理节点
* 判断倍率有问题的话,大概率是这个正则的问题,可以自行修改
* 自己改正则的话记得必须把倍率的number值提取出来
*/
let proxies = config.proxies
.filter((a) => {
const multiplier =
/(?<=[xX✕✖⨉倍率])([1-9]+(\.\d+)*|0{1}\.\d+)(?=[xX✕✖⨉倍率])*/i.exec(
a.name
)?.[1];
return (
a.name.match(region.regex) &&
parseFloat(multiplier || "0") <= region.ratioLimit
);
})
.map((b) => {
return b.name;
});
/**
* 必须再判断一下有没有符合要求的代理节点
* 没有的话,这个策略组就不应该存在
* 我喜欢自动选择延迟最低的节点,喜欢轮询的可以自己修改
*/
if (proxies.length > 0) {
regionProxyGroups.push({
...groupBaseOption,
name: region.name,
type: "url-test",
tolerance: 50,
icon: region.icon,
proxies: proxies,
});
}
otherProxyGroups = otherProxyGroups.filter((x) => !proxies.includes(x));
});
const proxyGroupsRegionNames = regionProxyGroups.map((value) => {
return value.name;
});
if (otherProxyGroups.length > 0) {
proxyGroupsRegionNames.push("其他节点");
}
config["proxy-groups"] = [
{
...groupBaseOption,
name: "默认节点",
type: "select",
proxies: [...proxyGroupsRegionNames, "直连"],
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Proxy.png",
},
];
config.proxies = config?.proxies || [];
config.proxies.push({
name: "直连",
type: "direct",
udp: true,
});
if (ruleOptions.openai) {
rules.push(
"DOMAIN-SUFFIX,grazie.ai,国外AI",
"DOMAIN-SUFFIX,grazie.aws.intellij.net,国外AI",
"RULE-SET,ai,国外AI"
);
ruleProviders.set("ai", {
...ruleProviderCommon,
behavior: "domain",
format: "mrs",
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/ai.mrs",
path: "./ruleset/DustinWin/ai.mrs",
});
config["proxy-groups"].push({
...groupBaseOption,
name: "国外AI",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://chat.openai.com/cdn-cgi/trace",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/ChatGPT.png",
});
}
if (ruleOptions.youtube) {
rules.push("GEOSITE,youtube,YouTube");
config["proxy-groups"].push({
...groupBaseOption,
name: "YouTube",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://www.youtube.com/s/desktop/494dd881/img/favicon.ico",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/YouTube.png",
});
}
if (ruleOptions.biliintl) {
rules.push("GEOSITE,biliintl,哔哩哔哩东南亚");
config["proxy-groups"].push({
...groupBaseOption,
name: "哔哩哔哩东南亚",
type: "select",
proxies: ["默认节点", "直连", ...proxyGroupsRegionNames],
url: "https://www.bilibili.tv/",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/bilibili_3.png",
});
}
if (ruleOptions.bahamut) {
rules.push("GEOSITE,bahamut,巴哈姆特");
config["proxy-groups"].push({
...groupBaseOption,
name: "巴哈姆特",
type: "select",
proxies: ["默认节点", "直连", ...proxyGroupsRegionNames],
url: "https://ani.gamer.com.tw/ajax/getdeviceid.php",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Bahamut.png",
});
}
if (ruleOptions.disney) {
rules.push("GEOSITE,disney,Disney+");
config["proxy-groups"].push({
...groupBaseOption,
name: "Disney+",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://disney.api.edge.bamgrid.com/devices",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Disney+.png",
});
}
if (ruleOptions.netflix) {
rules.push("GEOSITE,netflix,NETFLIX");
config["proxy-groups"].push({
...groupBaseOption,
name: "NETFLIX",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://api.fast.com/netflix/speedtest/v2?https=true",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Netflix.png",
});
}
if (ruleOptions.tiktok) {
rules.push("GEOSITE,tiktok,Tiktok");
config["proxy-groups"].push({
...groupBaseOption,
name: "Tiktok",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://www.tiktok.com/",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/TikTok.png",
});
}
if (ruleOptions.spotify) {
rules.push("GEOSITE,spotify,Spotify");
config["proxy-groups"].push({
...groupBaseOption,
name: "Spotify",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "http://spclient.wg.spotify.com/signup/public/v1/account",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Spotify.png",
});
}
if (ruleOptions.pixiv) {
rules.push("GEOSITE,pixiv,Pixiv");
config["proxy-groups"].push({
...groupBaseOption,
name: "Pixiv",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "http://spclient.wg.spotify.com/signup/public/v1/account",
icon: "https://play-lh.googleusercontent.com/8pFuLOHF62ADcN0ISUAyEueA5G8IF49mX_6Az6pQNtokNVHxIVbS1L2NM62H-k02rLM=w240-h480-rw",
});
}
if (ruleOptions.hbo) {
rules.push("GEOSITE,hbo,HBO");
config["proxy-groups"].push({
...groupBaseOption,
name: "HBO",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://www.hbo.com/favicon.ico",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/HBO.png",
});
}
if (ruleOptions.tvb) {
rules.push("GEOSITE,tvb,TVB");
config["proxy-groups"].push({
...groupBaseOption,
name: "TVB",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://www.tvb.com/logo_b.svg",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/TVB.png",
});
}
if (ruleOptions.primevideo) {
rules.push("GEOSITE,primevideo,Prime Video");
config["proxy-groups"].push({
...groupBaseOption,
name: "Prime Video",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://m.media-amazon.com/images/G/01/digital/video/web/logo-min-remaster.png",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Prime_Video.png",
});
}
if (ruleOptions.hulu) {
rules.push("GEOSITE,hulu,Hulu");
config["proxy-groups"].push({
...groupBaseOption,
name: "Hulu",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://auth.hulu.com/v4/web/password/authenticate",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Hulu.png",
});
}
if (ruleOptions.telegram) {
rules.push("GEOIP,telegram,Telegram");
config["proxy-groups"].push({
...groupBaseOption,
name: "Telegram",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "http://www.telegram.org/img/website_icon.svg",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Telegram.png",
});
}
if (ruleOptions.whatsapp) {
rules.push("GEOSITE,whatsapp,WhatsApp");
config["proxy-groups"].push({
...groupBaseOption,
name: "WhatsApp",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://web.whatsapp.com/data/manifest.json",
icon: "https://static.whatsapp.net/rsrc.php/v3/yP/r/rYZqPCBaG70.png",
});
}
if (ruleOptions.line) {
rules.push("GEOSITE,line,Line");
config["proxy-groups"].push({
...groupBaseOption,
name: "Line",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://line.me/page-data/app-data.json",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Line.png",
});
}
if (ruleOptions.games) {
rules.push(
"GEOSITE,category-games@cn,国内网站",
"GEOSITE,category-games,游戏专用"
);
config["proxy-groups"].push({
...groupBaseOption,
name: "游戏专用",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Game.png",
});
}
if (ruleOptions.tracker) {
rules.push("GEOSITE,tracker,跟踪分析");
config["proxy-groups"].push({
...groupBaseOption,
name: "跟踪分析",
type: "select",
proxies: ["REJECT", "直连", "默认节点"],
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Reject.png",
});
}
if (ruleOptions.ads) {
rules.push("GEOSITE,category-ads-all,广告过滤");
config["proxy-groups"].push({
...groupBaseOption,
name: "广告过滤",
type: "select",
proxies: ["REJECT", "直连", "默认节点"],
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Advertising.png",
});
}
if (ruleOptions.apple) {
rules.push("GEOSITE,apple-cn,苹果服务");
config["proxy-groups"].push({
...groupBaseOption,
name: "苹果服务",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "http://www.apple.com/library/test/success.html",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Apple_2.png",
});
}
if (ruleOptions.google) {
rules.push("GEOSITE,google,谷歌服务");
config["proxy-groups"].push({
...groupBaseOption,
name: "谷歌服务",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "http://www.google.com/generate_204",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Google_Search.png",
});
}
if (ruleOptions.microsoft) {
rules.push("GEOSITE,microsoft@cn,国内网站", "GEOSITE,microsoft,微软服务");
config["proxy-groups"].push({
...groupBaseOption,
name: "微软服务",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "http://www.msftconnecttest.com/connecttest.txt",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Microsoft.png",
});
}
if (ruleOptions.japan) {
rules.push(
"RULE-SET,category-bank-jp,日本网站",
"GEOIP,JP,日本网站,no-resolve"
);
ruleProviders.set("category-bank-jp", {
...ruleProviderCommon,
behavior: "domain",
format: "mrs",
url: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@meta/geo/geosite/category-bank-jp.mrs",
path: "./ruleset/MetaCubeX/category-bank-jp.mrs",
});
config["proxy-groups"].push({
...groupBaseOption,
name: "日本网站",
type: "select",
proxies: ["默认节点", ...proxyGroupsRegionNames, "直连"],
url: "https://r.r10s.jp/com/img/home/logo/touch.png",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/JP.png",
});
}
rules.push(
"GEOSITE,private,DIRECT",
"GEOIP,private,DIRECT,no-resolve",
"GEOIP,CN,国内网站,no-resolve",
"MATCH,其他外网"
);
config["proxy-groups"].push(
{
...groupBaseOption,
name: "下载软件",
type: "select",
proxies: [
"直连",
"REJECT",
"默认节点",
"国内网站",
...proxyGroupsRegionNames,
],
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Download.png",
},
{
...groupBaseOption,
name: "其他外网",
type: "select",
proxies: ["默认节点", "国内网站", ...proxyGroupsRegionNames],
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/Streaming!CN.png",
},
{
...groupBaseOption,
name: "国内网站",
type: "select",
proxies: ["直连", "默认节点", ...proxyGroupsRegionNames],
url: "http://wifi.vivo.com.cn/generate_204",
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/StreamingCN.png",
}
);
config["proxy-groups"] = config["proxy-groups"].concat(regionProxyGroups);
// 覆盖原配置中的规则
config["rules"] = rules;
config["rule-providers"] = Object.fromEntries(ruleProviders);
if (otherProxyGroups.length > 0) {
config["proxy-groups"].push({
...groupBaseOption,
name: "其他节点",
type: "select",
proxies: otherProxyGroups,
icon: "https://fastly.jsdelivr.net/gh/Koolson/Qure/IconSet/Color/World_Map.png",
});
}
// 返回修改后的配置
return config;
}
@dahaha-365
Copy link
Author

是不是不用写成扩展脚本,直接写yaml配置加上机场的Proxy Provider就行?

也可以

@huoxuexin
Copy link

效果图挂了

@snugduahn
Copy link

我的是dns配置的问题,改了就好了,就是有dns泄露了

我的也是,你的问题解决了吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment