No project description provided
Project description
Clash Config Preprocessor
Process multiple clash configure files , integrate them to single clash configure file.
How to use
pipx install clash_config_preprocessor
clash_config_preprocessor /path/to/preprocessor.config.yml -o /path/to/config.yml
preprocessor.config.yml NOT clash configure
example
preprocessor configure example v2
# 针对预处理器的配置
preprocessor:
version: 2 # 目标预处理器版本号 目前有 1 和 2
# clash 的 基础配置
# 将会被放置在 输出文件 的 根节点
# 内容参见 https://github.com/Dreamacro/clash/blob/dev/README.md
clash-general:
port: 1081
socks-port: 1080
#redir-port: 1081
allow-lan: true
mode: Rule
log-level: info
external-controller: "0.0.0.0:6170"
secret: ""
dns:
enable: true # set true to enable dns (default is false)
ipv6: true # default is false
listen: 0.0.0.0:1053
enhanced-mode: redir-host
nameserver:
- 127.0.0.1:8053
# 代理数据来源
# 预处理器 将会从这些来源中读取代理信息 用于下面的 Proxy Group 生成
# 读取的文件 必须是 一个标准的 clash 配置文件
proxy-sources:
- type: url
url: "https://raw.githubusercontent.com/Howard-00/clash-config-preprocessor/master/example/proxies.yml"
udp: true # 对订阅中没有 udp 字段的服务器增加 udp,会导致不支持 udp 的服务器出错,请自行测试
prefix: "xxcloud - " # 节点名称添加前缀
suffix: " - xxcloud" # 节点名称添加后缀
plugin: obfs # 为订阅中没有混淆信息的订阅添加混淆(仅ss)
plugin-opts:
mode: tls
host: download.windowsupdate.com
- type: plain
data:
name: "ss1"
type: ss
server: server
port: 443
cipher: AEAD_CHACHA20_POLY1305
password: "password"
udp: true
# 代理组(Proxy Group) 生成规则
# 预处理器将会读取 *所有载入的代理信息*
# 并将其 分配到 输出文件 的 代理组
# 把 black-regex
# 替换为 - - type: black-regex\n pattern:
# 把 white-regex:
# 替换为 - type: white-regex\n pattern:
# \n 是换行 可以实现简单的迁移
proxy-group-dispatch:
- name: ✈️ Proxy # 代理组名称
proxies-filters: # 分配给代理组 的 过滤器,目前支持 black-regex 和 white-regex,越靠前的优先级越高
# 一个节点被重复匹配会去重,保留它第一次匹配的位置
- - type: white-regex
pattern: ".*" # 匹配到的代理 将会分配到 此代理组
- type: black-regex
pattern: ".*高倍率.*" # 匹配到的代理 将不会分配到 此代理组
- - type: white-regex # 可以弄多组过滤器,用来控制顺序
pattern: ".*高倍率.*"
flat-proxies: # 强制某个代理组内的代理并加至最前
- "vmess"
back-flat-proxies: # 强制某个代理组内的代理并加至最后
- "socks"
type: fallback # 类型 参见 clash 配置
url: "https://www.google.com/generate_204" # 测试 url 参见 clash 配置
interval: 300 # 超时 参见 clash 配置
- name: "🌑 Others"
type: select
flat-proxies: ["✈️ Proxy", "DIRECT"]
# 规则集
# 从外部载入一个规则集 并将其应用于规则
rule-sets:
- name: ConnersHua_domains # 名称,在 Rule 中使用 RULE-SET,<name> 即可展开
type: clash # 类型,目前支持 clash 和 surge-ruleset
source: url # 来源,url 和 file
url: "https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml" # 如果是 file, 则需要填写 path
filters:
- operation: remove # 操作,目前支持 pick, remove, target-map, add-no-resolve,匹配成功后将执行
type: # 有三种过滤,type 和 target 是对规则类型和目标的完整匹配,采用列表的方式,可以写多条。
- IP-CIDR # 而 patter 是对规则模版的匹配,使用正则表达式,没写的类型默认匹配成功
- IP-CIDR6 # 这些过滤器按顺序执行,执行过 target-map 后目标会立即被修改并用于下一个过滤器的匹配
- operation: remove
type:
- GEOIP
pattern: "CN"
target:
- "DIRECT"
- operation: remove
type:
- MATCH
- operation: target-map
target-map:
- "PROXY,✈️ Proxy"
- "Apple,🍎 Apple"
- "GlobalMedia,📺 GlobalMedia"
- "HKMTMedia,🎬 HKMTMedia"
- "Hijacking,🚫 Hijacking"
- operation: add-no-resolve
- name: ConnersHua_ips
type: clash
source: url
url: "https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml" # 如果是 file, 则需要填写 path
filters:
- operation: target-map
target-map:
- "PROXY,✈️ Proxy"
- "Apple,🍎 Apple"
- "GlobalMedia,📺 GlobalMedia"
- "HKMTMedia,🎬 HKMTMedia"
- "Hijacking,🚫 Hijacking"
- operation: pick
type:
- IP-CIDR
- IP-CIDR6
- name: lhie-AD
type: surge-ruleset # 目前仅支持 surge 的 list 规则
source: url
url: "https://raw.githubusercontent.com/lhie1/Rules/master/Surge3/Reject.list"
target: "REJECT"
# 规则
# 将会 处理后 输出到 目标文件的 Rule
rule:
- "RULE-SET,lhie-AD" # 将会从上述规则集展开
- "RULE-SET,ConnersHua_domains" # 将会从上述规则集展开
- "DOMAIN-SUFFIX,google.com,✈️ Proxy"
- "DOMAIN-KEYWORD,google,✈️ Proxy"
- "DOMAIN,google.com,✈️ Proxy"
- "DOMAIN-SUFFIX,ad.com,REJECT"
- "RULE-SET,ConnersHua_ips" # 将会从上述规则集展开
- "IP-CIDR,127.0.0.0/8,DIRECT"
- "SOURCE-IP-CIDR,192.168.1.201/32,DIRECT"
- "GEOIP,CN,DIRECT"
- "MATCH,✈️ Proxy"
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for clash_config_preprocessor-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1f9d3b14599460cfe44b36d403e2a75246f75b46e986c0004f0734eacafed20 |
|
MD5 | c93be01633223a8ee18a3eab5babef42 |
|
BLAKE2b-256 | 594da990185b0406d7e900d63c871b5e333ff1b13cfc14e4b5aba495ecc5dfd7 |
Close
Hashes for clash_config_preprocessor-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eaa2cc622b46a49f31beb74cb5c81f6b3b7af8706391c3c597c51d1b9ebd45db |
|
MD5 | 015de8d1b6caa42b3b3e788f921ba73c |
|
BLAKE2b-256 | f50555a359d156c787e36c3d1d77c94e0e8dd2c51c77ee55a26392ef867b50c2 |