【科学上网】使用Clash for windows的Parsers功能实现对所有机场进行订阅转换

  1. 1. 免责声明
  2. 2. 配置
    1. 2.1. 附上mixin规则

免责声明

  • 转载自 Github并稍作修改
  • 本配置仅适用于更换了Clash Meta核心的Clash for Windows软件!!!

配置

利用parsers功能,无论导入什么订阅链接,都会转化为自己的规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
parsers: # array  
# - reg: ^.*$ 匹配所有订阅,或 - url: https://example.com/profile.yaml 指定订阅
- reg: ^.*$
# 删除服务商提供的策略组和规则
code: |
module.exports.parse = (raw, { yaml }) => {
const rawObj = yaml.parse(raw)
const groups = []
const rules = []
return yaml.stringify({ ...rawObj, 'proxy-groups': groups, rules })
}
yaml: # 建立自己的配置
prepend-proxy-groups: # 建立策略组
- name: Proxy
type: select
- name: 🇯🇵日本流媒
type: select
- name: 🤖AI应用
type: select
- name: 📲TG消息
type: select
- name: 🛑广告拦截
type: select
proxies:
- REJECT
- name: 🧿直连
type: select
proxies:
- DIRECT

# 策略组说明
# - name: 分组名
# type: select # 手动选点
# url-test # 自动选择延迟最低的节点
# fallback # 节点故障时自动切换下一个
# load-balance # 均衡使用分组内的节点
# url: http://www.gstatic.com/generate_204 # 测试地址 非select类型分组必要
# interval: 300 # 自动测试间隔时间,单位秒 非select类型分组必要
# tolerance: 50 # 允许的偏差,节点之间延迟差小于该值不切换 非必要
# proxies:
# - 节点名称或其他分组套娃

commands:
# 向指定策略组添加订阅中的节点名,可使用正则过滤
- proxy-groups.Proxy.proxies=[]proxyNames
- proxy-groups.🇯🇵日本流媒.proxies=[]proxyNames|^(.*)(日本|JP|Japan|Osaka|Tokyo|樱花|霓虹|xtom|🇯🇵)+(.*)$
- proxy-groups.🤖AI应用.proxies=[]proxyNames|^(.*)(美国|US|UnitedStates|United States|凤凰城|洛杉矶|圣何塞|San Jose|Los Angeles|Phoenix|🇺🇸)+(.*)$
- proxy-groups.📲TG消息.proxies=[]proxyNames|^(.*)(新加坡|SG|狮城|坡|Singapore|SGP|🇸🇬)+(.*)$
# 为策略组添加一个Proxy,避免分组内筛选不到节点而报错
- proxy-groups.🇯🇵日本流媒.proxies.999+Proxy
- proxy-groups.🤖AI应用.proxies.999+Proxy
- proxy-groups.📲TG消息.proxies.999+Proxy
# commands说明:
## - proxy-groups.节点名字.proxies.0+DIRECT # 向指定分组第一个位置添加一个 DIRECT 节点名
## 一些可能用到的正则过滤节点示例,使分组更细致
## []proxyNames|a # 包含a
## []proxyNames|^(.*)(a|b)+(.*)$ # 包含a或b
## []proxyNames|^(?=.*a)(?=.*b).*$ # 包含a和b
## []proxyNames|^((?!b).)*a((?!b).)*$ # 包含a且不包含b
## []proxyNames|^((?!b|c).)*a((?!b|c).)*$ # 包含a且不包含b或c
## 更多正则教程,请看这里:https://deerchao.cn/tutorials/regex/regex.htm#top
# 添加规则
prepend-rules: # 规则由上往下遍历,如上面规则已经命中,则不再往下处理
- "AND,(AND,(DST-PORT,443),(NETWORK,UDP)),(NOT,((GEOIP,CN))),🛑广告拦截"
# 放行一些可以不屏蔽的域名
- DOMAIN-SUFFIX,baomitu.com,🧿直连 #360图片CDN-1
- DOMAIN-SUFFIX,qhimg.com,🧿直连 #360图片CDN-2
# 屏蔽搜狗 & 360
- GEOSITE,sogou,🛑广告拦截
- GEOSITE,qihoo360,🛑广告拦截
# Palworld盗版防止存档变化
- DOMAIN-SUFFIX,palworldgame.com,🛑广告拦截
- DOMAIN-KEYWORD,pocketpair,🛑广告拦截
# 老鹰讲AE
- DOMAIN-SUFFIX,aic4d.com,🧿直连
# 日本流媒体
- DOMAIN-SUFFIX,jp,🇯🇵日本流媒
- GEOSITE,abema,🇯🇵日本流媒
- GEOSITE,niconico,🇯🇵日本流媒
- GEOSITE,dmm,🇯🇵日本流媒
- GEOSITE,hulu,🇯🇵日本流媒
- GEOSITE,pixiv,🇯🇵日本流媒
- DOMAIN-KEYWORD,asobistage,🇯🇵日本流媒
- GEOSITE,apple,🇯🇵日本流媒
# AI应用
- GEOSITE,openai,🤖AI应用
- DOMAIN-SUFFIX,bard.google.com,🤖AI应用
- DOMAIN-SUFFIX,g4f.icu,🤖AI应用
# 卡巴斯基
- DOMAIN-KEYWORD,kaspersky,Proxy
# Geosite
- GEOSITE,category-scholar-!cn,Proxy
- GEOSITE,youtube,Proxy
- GEOSITE,google,Proxy
- GEOSITE,bilibili@!cn,Proxy
- GEOSITE,xbox,Proxy
- GEOSITE,microsoft@cn,🧿直连
- GEOSITE,microsoft,Proxy
- GEOSITE,telegram,📲TG消息
- GEOSITE,microsoft,Proxy
- GEOSITE,private,🧿直连
- GEOSITE,steam@cn,🧿直连
- GEOSITE,steam,Proxy
- GEOSITE,steamunlocked,Proxy
- GEOSITE,category-games@cn,🧿直连
- GEOSITE,epicgames,🧿直连
- DOMAIN-SUFFIX,cn,🧿直连
- GEOSITE,geolocation-!cn,Proxy
- GEOSITE,cn,🧿直连
- GEOIP,private,🧿直连,no-resolve
- GEOIP,telegram,📲TG消息
- GEOIP,google,Proxy
- GEOIP,twitter,Proxy
- GEOIP,CN,🧿直连
- MATCH,Proxy

附上mixin规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
mixin: # object
mode: rule # 规则模式:rule(规则) / global(全局代理)/ direct(全局直连)/ script (脚本)
ipv6: true # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录
log-level: info # 设置日志输出级别 (5 个级别:silent / error / warning / info / debug)
mixed-port: 20810 # 混合端口,HTTP和SOCKS5用一个端口
unified-delay: true # 统一延迟,更换延迟计算方式,去除握手等额外延迟
tcp-concurrent: true # 【Meta专属】TCP 并发连接所有 IP, 将使用最快握手的 TCP
keep-alive-interval: 15 # TCP keep alive interval

geodata-mode: true # 【Meta专属】使用geoip.dat数据库(默认:false使用mmdb数据库)
geodata-loader: standard # 【Meta专属】使用标准加载器加载GEO文件(会提升内存占用)
geox-url: # 自定义GEO文件下载地址
geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
mmdb: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb"
geo-auto-update: true # 【Meta专属】启用自动更新GEO文件
geo-update-interval: 24 # 【Meta专属】自动更新GEO文件间隔
global-ua: clash.meta # 【Meta专属】自定义全局更新文件时的下载UA(默认:clash.meta)

find-process-mode: strict # 匹配所有进程(always/strict/off)
global-client-fingerprint: chrome # 全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint
# 可选: "chrome","firefox","safari","ios","random","none" options.

profile:
store-selected: true # 存储 select 选择记录
store-fake-ip: true # 持久化 fake-ip

dns:
enable: true # 关闭将使用系统 DNS
ipv6: true # IPV6解析开关;如果为false,将返回ipv6结果为空
enhanced-mode: fake-ip # 模式:redir-host或fake-ip
listen: 0.0.0.0:1053 # DNS 监听地址
use-hosts: true # 是否查询系统 hosts
fake-ip-range: 198.18.0.1/16 # fakeip 下的 IP 段设置,tun 网卡的默认 ip 也使用此值
fake-ip-filter: ['+.lan', '+.msftncsi.com', 'msftconnecttest.com', '+.msftconnecttest.com', '*.msftncsi.com', '*.msftconnecttest.com']
# Fake-ip 过滤,列表中的域名返回真实IP
default-nameserver: [223.5.5.5, 119.29.29.29]
# 解析非IP的dns用的dns服务器,只支持纯IP,(Meta可为其加密)
nameserver: ["https://1.1.1.1/dns-query#Proxy", "https://dns.google/dns-query#Proxy"]
# 默认DNS服务器,支持udp/tcp/dot/doh/doq
proxy-server-nameserver: [https://223.5.5.5/dns-query, https://1.12.12.12/dns-query]
# 代理DNS服务器,支持udp/tcp/dot/doh/doq
nameserver-policy:
"geosite:cn,private,bytedance,steam@cn,epicgames,microsoft@cn,apple@cn": [https://223.5.5.5/dns-query, https://120.53.53.53/dns-query]
"geosite:steam,speedtest": ["https://1.1.1.1/dns-query#Proxy"]
# 指定域名查询的解析服务器,可使用 geosite, 优先于 nameserver/fallback 查询