subconverter icon indicating copy to clipboard operation
subconverter copied to clipboard

[BUG]filter字段不生效

Open Seed680 opened this issue 1 month ago • 0 comments

确认版本最新

  • [x] 我已经确认在最新Action编译的版本中复现

检索issue

  • [x] 我已经确认之前没有issue涉及此BUG

subconverter版本

0.9.3

转换过程

转换为clash配置时filter字段未生效

转换设置

外部配置文件

version = 1
[custom]
# ----------------------------------------------------------------------
# 基础设置
# ----------------------------------------------------------------------
{% if default(request.home, "false") == "true" %}
clash_rule_base = "base/clash_base.yml"
{% else %}
clash_rule_base = "base/clash_pub.yml"
{% endif %}

enable_rule_generator = false
overwrite_original_rules = false

# ======================================================================
# 3. 核心功能分组
# ======================================================================
[[custom_groups]]
name = "节点选择"
type = "select"
rule = [
   "[]自动选择",
   "[]香港节点",
   "[]台湾节点",
   "[]日本节点",
   "[]韩国节点",
   "[]新加坡节点",
   "[]美国节点",
   "[]其它地区",
   "[]全部节点",
   "[]全球直连"
]

[[custom_groups]]
name = "全部节点"
type = "select"
use = ["订阅一"]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50
# 无 filter,显示所有

{% if default(request.home, "false") == "true" %}
[[custom_groups]]
name = "Home"
type = "select"
# 注意:如果你没有定义名为 HomeProvider 的 provider,请改回 rule 模式
use = ["Home_VPN"] 
filter = "(?i)Home|home"
rule = ["[]全球直连"]
{% endif %}

# ======================================================================
# 4. 场景策略分组
# ======================================================================

[[custom_groups]]
name = "OpenAI"
type = "select"
rule = [
   "[]节点选择",
   "[]美国节点",
   "[]日本节点",
   "[]新加坡节点",
   "[]台湾节点",
   "[]香港节点",
   "[]自动选择"
]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "Spotify"
type = "select"
rule = [
   "[]节点选择",
   "[]香港节点",
   "[]台湾节点",
   "[]日本节点",
   "[]韩国节点",
   "[]新加坡节点",
   "[]美国节点",
   "[]自动选择"
]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "国内"
type = "select"
rule = [
   "[]全球直连",
   "[]节点选择"
]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "广告拦截"
type = "select"
rule = [
   "[]全球拦截",
   "[]全球直连",
   "[]节点选择"
]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "其他"
type = "select"
rule = [
   "[]节点选择",
   "[]自动选择",
   "[]全球直连",
   "[]香港节点",
   "[]台湾节点",
   "[]日本节点",
   "[]美国节点"
]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

# ======================================================================
# 1. 基础自动检测组
# ======================================================================
[[custom_groups]]
name = "自动选择"
type = "url-test"
use = ["订阅一"]
filter = "(?i)^(?!.*(倍|air)).*"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

# ======================================================================
# 2. 地区嵌套分组 (自动测速 + 机场节点筛选)
# ======================================================================

# --- 香港 ---
[[custom_groups]]
name = "香港自动"
type = "url-test"
use = ["订阅一"]
filter = "(?i)港|hk|hongkong|hong kong"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "香港节点"
type = "select"
use = ["订阅一"]
filter = "(?i)港|hk|hongkong|hong kong"
rule = ["[]香港自动"]
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

# --- 台湾 ---
[[custom_groups]]
name = "台湾自动"
type = "url-test"
use = ["订阅一"]
filter = "(?i)台|tw|taiwan"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "台湾节点"
type = "select"
rule = ["[]台湾自动"]
use = ["订阅一"]
filter = "(?i)台|tw|taiwan"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

# --- 日本 ---
[[custom_groups]]
name = "日本自动"
type = "url-test"
use = ["订阅一"]
filter = "(?i)日本|jp|japan"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

[[custom_groups]]
name = "日本节点"
type = "select"
rule = ["[]日本自动"]
use = ["订阅一"]
filter = "(?i)日本|jp|japan"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50


# --- 韩国 ---
[[custom_groups]]
name = "韩国自动"
type = "url-test"
use = ["订阅一"]
filter = "(?i)韩|kr|korea"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50


[[custom_groups]]
name = "韩国节点"
type = "select"
rule = ["[]韩国自动"]
use = ["订阅一"]
filter = "(?i)韩|kr|korea"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

# --- 美国 ---
[[custom_groups]]
name = "美国自动"
type = "url-test"
use = ["订阅一"]
filter = "(?i)美|us|unitedstates|united states"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50


[[custom_groups]]
name = "美国节点"
type = "select"
rule = ["[]美国自动"]
use = ["订阅一"]
filter = "(?i)美|us|unitedstates|united states"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50

# --- 新加坡 ---
[[custom_groups]]
name = "新加坡自动"
type = "url-test"
use = ["订阅一"]
filter = "(?i)(新|sg|singapore)"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50


[[custom_groups]]
name = "新加坡节点"
type = "select"
rule = ["[]新加坡自动"]
use = ["订阅一"]
filter = "(?i)(新|sg|singapore)"
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50


# --- 其它地区 ---
[[custom_groups]]
name = "其它自动"
type = "url-test"
use = ["订阅一"]
# 复杂的排除正则,匹配不属于上述地区的节点
filter = '(?i)^(?!.*(?:🇭🇰|🇯🇵|🇺🇸|🇸🇬|🇨🇳|港|hk|hongkong|台|tw|taiwan|日|jp|japan|新|sg|singapore|美|us|unitedstates|韩|kr|korea)).*'
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50


[[custom_groups]]
name = "其它地区"
type = "select"
rule = ["[]其它自动"]
use = ["订阅一"]
filter = '(?i)^(?!.*(?:🇭🇰|🇯🇵|🇺🇸|🇸🇬|🇨🇳|港|hk|hongkong|台|tw|taiwan|日|jp|japan|新|sg|singapore|美|us|unitedstates|韩|kr|korea)).*'
url = "http://www.gstatic.com/generate_204"
interval = 300
tolerance = 50




# ======================================================================
# 5. 基础策略定义
# ======================================================================

[[custom_groups]]
name = "全球直连"
type = "select"
rule = ["[]DIRECT"]

[[custom_groups]]
name = "全球拦截"
type = "select"
rule = ["[]REJECT", "[]DIRECT"]

复现步骤

base文件内容如下

p: &p
 type: http
 # 自动更新订阅时间,单位为秒
 interval: 86400
 health-check:
   enable: true
   url: https://cp.cloudflare.com/generate_204
   # 节点连通性检测时间,单位为秒
   interval: 120
   # 节点超时延迟,单位为毫秒
   timeout: 1000
   # 节点自动切换差值,单位为毫秒
   tolerance: 100
# 分组
pr: &pr
 {
   type: select,
   proxies:
     [
       节点选择,
       香港,
       台湾,
       日本,
       韩国,
       新加坡,
       美国,
       其它地区,
       全部节点,
       自动选择,
       DIRECT,
     ],
   <<: *p
 }

use: &use
 # 如果不希望自动切换请将下面两行注释对调
 # type: select
 type: select
 use:
   - 订阅一
   # - 本地配置
# port: 7890 # HTTP(S) 代理服务器端口
# socks-port: 7891 # SOCKS5 代理端口
mixed-port: 10801 # HTTP(S) 和 SOCKS 代理混合端口
# redir-port: 7892 # 透明代理端口,用于 Linux 和 MacOS

# Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
# tproxy-port: 7893

allow-lan: true # 允许局域网连接
bind-address: "*" # 绑定 IP 地址,仅作用于 allow-lan 为 true,'*'表示所有地址
#authentication: # http,socks 入口的验证用户名,密码
#  - "username:password"
skip-auth-prefixes: # 设置跳过验证的 IP 段
 - 127.0.0.1/8
 - ::1/128
#lan-allowed-ips: # 允许连接的 IP 地址段,仅作用于 allow-lan 为 true, 默认值为 0.0.0.0/0 和::/0
#  - 0.0.0.0/0
#  - ::/0
#lan-disallowed-ips: # 禁止连接的 IP 地址段,黑名单优先级高于白名单,默认值为空
#  - 192.168.0.3/32

#  find-process-mode has 3 values:always, strict, off
#  - always, 开启,强制匹配所有进程
#  - strict, 默认,由 mihomo 判断是否开启
#  - off, 不匹配进程,推荐在路由器上使用此模式
find-process-mode: strict

mode: rule

#自定义 geodata url
geox-url:
 geoip: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
 geosite: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
 mmdb: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb"

geo-auto-update: true # 是否自动更新 geodata
geo-update-interval: 24 # 更新间隔,单位:小时

# Matcher implementation used by GeoSite, available implementations:
# - succinct (default, same as rule-set)
# - mph (from V2Ray, also `hybrid` in Xray)
# geosite-matcher: succinct

log-level: info # 日志等级 silent/error/warning/info/debug

ipv6: true # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录


external-controller: 0.0.0.0:9090 
# RESTful API 监听地址
# external-controller-tls: 0.0.0.0:9443 # RESTful API HTTPS 监听地址,需要配置 tls 部分配置文件
# secret: "123456" # `Authorization:Bearer ${secret}`

# RESTful API CORS标头配置
#external-controller-cors:
#  allow-origins:
#    - *
#  allow-private-network: true

# RESTful API Unix socket 监听地址( windows版本大于17063也可以使用,即大于等于1803/RS4版本即可使用 )
# !!!注意: 从Unix socket访问api接口不会验证secret, 如果开启请自行保证安全问题 !!!
# 测试方法: curl -v --unix-socket "mihomo.sock" http://localhost/
#external-controller-unix: mihomo.sock

# RESTful API Windows namedpipe 监听地址
# !!!注意: 从Windows namedpipe访问api接口不会验证secret, 如果开启请自行保证安全问题 !!!
#external-controller-pipe: \\.\pipe\mihomo

tcp-concurrent: true # TCP 并发连接所有 IP, 将使用最快握手的 TCP
# 统一延迟
# 更换延迟计算方式,去除握手等额外延迟
unified-delay: true

# 缓解移动设备耗电问题
# https://github.com/vernesong/OpenClash/issues/2614
keep-alive-idle: 600
keep-alive-interval: 15
# 配置 WEB UI 目录,使用 http://external-controller/ui 访问
external-ui: ui
external-ui-url: "https://mirror.ghproxy.com/https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"
external-ui-name: xd

# 在RESTful API端口上开启DOH服务器
# !!!该URL不会验证secret, 如果开启请自行保证安全问题 !!!
# external-doh-server: /dns-query

# interface-name: en0 # 设置出口网卡

# 全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint
# 可选: "chrome","firefox","safari","ios","random","none" options.
# Utls is currently support TLS transport in TCP/grpc/WS/HTTP for VLESS/Vmess and trojan.
global-client-fingerprint: chrome

#  TCP keep alive interval
# disable-keep-alive: false #目前在android端强制为true
# keep-alive-idle: 15
# keep-alive-interval: 15

# routing-mark:6666 # 配置 fwmark 仅用于 Linux
experimental:
 # Disable quic-go GSO support. This may result in reduced performance on Linux.
 # This is not recommended for most users.
 # Only users encountering issues with quic-go's internal implementation should enable this,
 # and they should disable it as soon as the issue is resolved.
 # This field will be removed when quic-go fixes all their issues in GSO.
 # This equivalent to the environment variable QUIC_GO_DISABLE_GSO=1.
 #quic-go-disable-gso: true

# 类似于 /etc/hosts, 仅支持配置单个 IP
hosts:
# '*.mihomo.dev': 127.0.0.1
# '.dev': 127.0.0.1
# 'alpha.mihomo.dev': '::1'
# test.com: [1.1.1.1, 2.2.2.2]
# home.lan: lan # lan 为特别字段,将加入本地所有网卡的地址
# baidu.com: google.com # 只允许配置一个别名

profile: # 存储 select 选择记录
 store-selected: true

 # 持久化 fake-ip
 store-fake-ip: true

# Tun 配置
tun:
 enable: true
 stack: system # gvisor/mixed
 dns-hijack:
   - 0.0.0.0:53 # 需要劫持的 DNS
 # inet4-route-address: # 启用 auto-route 时使用自定义路由而不是默认路由(旧写法)
 #   - 0.0.0.0/1
 #   - 128.0.0.0/1
 # inet6-route-address: # 启用 auto-route 时使用自定义路由而不是默认路由(旧写法)
 #   - "::/1"
 #   - "8000::/1"
 # endpoint-independent-nat: false # 启用独立于端点的 NAT
 # include-interface: # 限制被路由的接口。默认不限制,与 `exclude-interface` 冲突
 #   - "lan0"
 # exclude-interface: # 排除路由的接口,与 `include-interface` 冲突
 #   - "lan1"
 # include-uid: # UID 规则仅在 Linux 下被支持,并且需要 auto-route
 # - 0
 # include-uid-range: # 限制被路由的的用户范围
 # - 1000:9999
 # exclude-uid: # 排除路由的的用户
 #- 1000
 # exclude-uid-range: # 排除路由的的用户范围
 # - 1000:9999

 # Android 用户和应用规则仅在 Android 下被支持
 # 并且需要 auto-route

 # include-android-user: # 限制被路由的 Android 用户
 # - 0
 # - 10
 # include-package: # 限制被路由的 Android 应用包名
 # - com.android.chrome
 # exclude-package: # 排除被路由的 Android 应用包名
 # - com.android.captiveportallogin

# 嗅探域名 可选配置
sniffer:
 enable: true
 ## 对 redir-host 类型识别的流量进行强制嗅探
 ## 如:Tun、Redir 和 TProxy 并 DNS 为 redir-host 皆属于
 # force-dns-mapping: false
 ## 对所有未获取到域名的流量进行强制嗅探
 # parse-pure-ip: false
 # 是否使用嗅探结果作为实际访问,默认 true
 # 全局配置,优先级低于 sniffer.sniff 实际配置
 override-destination: false
 sniff: # TLS 和 QUIC 默认如果不配置 ports 默认嗅探 443
   QUIC:
   #  ports: [ 443 ]
   TLS:
   #  ports: [443, 8443]

   # 默认嗅探 80
   HTTP: # 需要嗅探的端口
     ports: [80, 8080-8880]
     # 可覆盖 sniffer.override-destination
     override-destination: true
 force-domain:
   - +.v2ex.com
 # skip-src-address: # 对于来源ip跳过嗅探
 #   - 192.168.0.3/32
 # skip-dst-address: # 对于目标ip跳过嗅探
 #   - 192.168.0.3/32
 ## 对嗅探结果进行跳过
 skip-domain:
   - Mijia Cloud
 # 需要嗅探协议
 # 已废弃,若 sniffer.sniff 配置则此项无效
 sniffing:
   - tls
   - http
 # 强制对此域名进行嗅探

 # 仅对白名单中的端口进行嗅探,默认为 443,80
 # 已废弃,若 sniffer.sniff 配置则此项无效
 port-whitelist:
   - "80"
   - "443"
   # - 8000-9999

# DNS 配置
dns:
 cache-algorithm: arc
 enable: true # 关闭将使用系统 DNS
 prefer-h3: false # 是否开启 DoH 支持 HTTP/3,将并发尝试
 listen: 0.0.0.0:53 # 开启 DNS 服务器监听
 # ipv6: false # false 将返回 AAAA 的空结果
 # ipv6-timeout: 300 # 单位:ms,内部双栈并发时,向上游查询 AAAA 时,等待 AAAA 的时间,默认 100ms
 # 用于解析 nameserver,fallback 以及其他 DNS 服务器配置的,DNS 服务域名
 # 只能使用纯 IP 地址,可使用加密 DNS
 default-nameserver:
   - 114.114.114.114
   - 8.8.8.8
   - tls://1.12.12.12:853
   - tls://223.5.5.5:853
   - system # append DNS server from system configuration. If not found, it would print an error log and skip.
 enhanced-mode: fake-ip # or redir-host

 fake-ip-range: 198.18.0.1/16 # fake-ip 池设置

 # 配置不使用 fake-ip 的域名
 fake-ip-filter:
   - '*.lan'
   - 'localhost.ptlogin2.qq.com'
   - "rule-set:WeChat"
   - "rule-set:FCM"
   - "rule-set:ChinaMedia"
   - "rule-set:DouYin"
   - "rule-set:Speedtest"
   - "rule-set:Tencent"
   - "geosite:CN"
   - 'tracker.m-team.cc'
   - 'tracker.hhanclub.top'
   - 'on.springsunday.net'
   - 't.audiences.me'
   - 'tracker.cinefiles.info'
   - 't.ubits.club'
   - 'tracker.piggo.me'
   - 'tracker.qingwa.pro'
   - 'tracker.qingwapt.pro'
   - 'tracker.qingwapt.org'
   - 'tracker.totheglory.im'
   # fakeip-filter 为 rule-providers 中的名为 fakeip-filter 规则订阅,
   # 且 behavior 必须为 domain/classical,当为 classical 时仅会生效域名类规则
   #- rule-set:fakeip-filter
   # fakeip-filter 为 geosite 中名为 fakeip-filter 的分类(需要自行保证该分类存在)
   #- geosite:fakeip-filter
 # 配置fake-ip-filter的匹配模式,默认为blacklist,即如果匹配成功不返回fake-ip
 # 可设置为whitelist,即只有匹配成功才返回fake-ip
 fake-ip-filter-mode: blacklist

 use-hosts: true # 查询 hosts

 # 配置后面的nameserver、fallback和nameserver-policy向dns服务器的连接过程是否遵守遵守rules规则
 # 如果为false(默认值)则这三部分的dns服务器在未特别指定的情况下会直连
 # 如果为true,将会按照rules的规则匹配链接方式(走代理或直连),如果有特别指定则任然以指定值为准
 # 仅当proxy-server-nameserver非空时可以开启此选项, 强烈不建议和prefer-h3一起使用
 # 此外,这三者配置中的dns服务器如果出现域名会采用default-nameserver配置项解析,也请确保正确配置default-nameserver
 respect-rules: true

 # DNS 主要域名配置
 # 支持 UDP,TCP,DoT,DoH,DoQ
 # 这部分为主要 DNS 配置,影响所有直连,确保使用对大陆解析精准的 DNS
 nameserver:
   - '8.8.8.8#RULES'
   - 114.114.114.114 # default value
   - https://doh.pub/dns-query # DNS over HTTPS
   - https://dns.alidns.com/dns-query # 强制 HTTP/3,与 perfer-h3 无关,强制开启 DoH 的 HTTP/3 支持,若不支持将无法使用
   # - 8.8.8.8 # default value
   - tls://223.5.5.5:853 # DNS over TLS

   #- https://mozilla.cloudflare-dns.com/dns-query#DNS&h3=true # 指定策略组和使用 HTTP/3
   #- dhcp://en0 # dns from dhcp
   #- quic://dns.adguard.com:784 # DNS over QUIC
   # - '8.8.8.8#RULES' # 效果同respect-rules,但仅对该服务器生效
   # - '8.8.8.8#en0' # 兼容指定 DNS 出口网卡

 # 当配置 fallback 时,会查询 nameserver 中返回的 IP 是否为 CN,非必要配置
 # 当不是 CN,则使用 fallback 中的 DNS 查询结果
 # 确保配置 fallback 时能够正常查询
 # fallback:
 #   - tcp://1.1.1.1
 #   - 'tcp://1.1.1.1#ProxyGroupName' # 指定 DNS 过代理查询,ProxyGroupName 为策略组名或节点名,过代理配置优先于配置出口网卡,当找不到策略组或节点名则设置为出口网卡

 # 专用于节点域名解析的 DNS 服务器,非必要配置项
 proxy-server-nameserver:
   - 223.5.5.5
   - 114.114.114.114
 # - https://dns.google/dns-query
 # - tls://one.one.one.one

 # 配置 fallback 使用条件
 # fallback-filter:
 #   geoip: true # 配置是否使用 geoip
 #   geoip-code: CN # 当 nameserver 域名的 IP 查询 geoip 库为 CN 时,不使用 fallback 中的 DNS 查询结果
 #   配置强制 fallback,优先于 IP 判断,具体分类自行查看 geosite 库
 #   geosite:
 #     - gfw
 #   如果不匹配 ipcidr 则使用 nameservers 中的结果
 #   ipcidr:
 #     - 240.0.0.0/4
 #   domain:
 #     - '+.google.com'
 #     - '+.facebook.com'
 #     - '+.youtube.com'

 # 配置查询域名使用的 DNS 服务器
 nameserver-policy:
   #   'www.baidu.com': '114.114.114.114'
   #   '+.internal.crop.com': '10.0.0.1'
  
   "geosite:cn,private,apple":
     - https://doh.pub/dns-query
     - https://dns.alidns.com/dns-query
   "geosite:category-ads-all": rcode://success
   "www.baidu.com,+.google.cn": [223.5.5.5, https://dns.alidns.com/dns-query]
   ## global,dns 为 rule-providers 中的名为 global 和 dns 规则订阅,
   ## 且 behavior 必须为 domain/classical,当为 classical 时仅会生效域名类规则
   # "rule-set:global,dns": 8.8.8.8

# 订阅链接
# 对于订阅来说,path 为选填项,但建议启用
# 本地配置可以只填 path
proxy-providers:
 订阅一:
   <<: *p
   # path: ./proxy_provider/订阅一.yaml
   url: 

# 规则订阅
rule-providers:
 whitelist_full:
   type: http
   behavior: domain
   format: yaml
   path: ./ruleset/whitelist_full.yaml
   url: "https://gcore.jsdelivr.net/gh/Seed680/GFWList2AGH@main/gfwlist2clash/whitelist_full.yaml"
 
 blacklist_full:
   type: http
   behavior: domain
   format: yaml
   path: ./ruleset/blacklist_full.yaml
   url: "https://gcore.jsdelivr.net/gh/Seed680/GFWList2AGH@main/gfwlist2clash/blacklist_full.yaml"
 # 秋风广告拦截规则
 # https://awavenue.top
 # 由于 Anti-AD 误杀率高,本项目已在 1.11-241024 版本更换秋风广告规则
 AWAvenue-Ads:
   type: http
   behavior: domain
   format: yaml
   # path可为空(仅限clash.meta 1.15.0以上版本)
   path: ./ruleset/AWAvenue-Ads.yaml
   url: "https://gcore.jsdelivr.net/gh/TG-Twilight/AWAvenue-Ads-Rule@main/Filters/AWAvenue-Ads-Rule-Clash.yaml"
   interval: 600
 FCM:
   type: http
   behavior: classical
   format: yaml
   path: ./ruleset/GoogleFCM.yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/GoogleFCM/GoogleFCM.yaml"
   interval: 86400
 ad-keyword:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Clash/Basic/common-ad-keyword.yaml"
   path: ./ruleset/common-ad-keyword.yaml
   interval: 86400
 lan:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Clash/Basic/LAN.yaml"
   path: ./ruleset/LAN.yaml
   interval: 86400
 Telegram:
   type: http
   behavior: classical
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Telegram/Telegram.yaml"
   path: ./ruleset/Telegram.yaml
   interval: 86400
 Claude:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Claude/Claude_No_Resolve.yaml"
   path: ./ruleset/Claude.yaml
   interval: 86400
 Gemini:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Gemini/Gemini_No_Resolve.yaml"
 BanAD:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/BanAD.yaml"
   path: ./ruleset/BanAD.yaml
   interval: 86400
 BanEasyList:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/BanEasyList.yaml"
   path: ./ruleset/BanEasyList.yaml
   interval: 86400
 BanEasyListChina:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/BanEasyListChina.yaml"
   path: ./ruleset/BanEasyListChina.yaml
   interval: 86400
 BanEasyPrivacy:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/BanEasyPrivacy.yaml"
   path: ./ruleset/BanEasyPrivacy.yaml
   interval: 86400
 BanProgramAD:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/BanProgramAD.yaml"
   path: ./ruleset/BanProgramAD.yaml
   interval: 86400
 UnBan:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/UnBan.yaml"
   path: ./ruleset/UnBan.yaml
   interval: 86400
 ChinaDomain:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/ChinaDomain.yaml"
   path: ./ruleset/ChinaDomain.yaml
   interval: 86400
 ChinaIp:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/ChinaIPs/ChinaIPs_IP.yaml"
   path: ./ruleset/ChinaIp.yaml
   interval: 86400
 ChinaMedia:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/ChinaMedia/ChinaMedia.yaml"
   path: ./ruleset/ChinaMedia.yaml
   interval: 86400
 DouYin:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/DouYin/DouYin.yaml"
   path: ./ruleset/DouYin.yaml
   interval: 86400
 Speedtest:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Speedtest/Speedtest.yaml"
   path: ./ruleset/Speedtest.yaml
   interval: 86400
 WeChat:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/WeChat/WeChat.yaml"
   path: ./ruleset/WeChat.yaml
   interval: 86400
 Tencent:
   type: http
   behavior: classical
   format: yaml
   url: "https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Tencent/Tencent.yaml"
   path: ./ruleset/Tencent.yaml
   interval: 86400

proxy-groups:
 # 使用 WARP 的用户需要手动在下方的 proxies 字段内添加 WARP
 # 例如 [WARP, 全部节点, 自动选择, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, DIRECT],
 - {
     name: 节点选择,
     type: select,
     proxies:
       [全部节点, 自动选择, 香港, 台湾, 日本, 韩国, 新加坡, 美国, 其它地区, DIRECT]
   }
#   - {
#       name: Relay,
#       type: relay,
#       proxies:
#         [香港,ipv4]
#     }

 # WARP 配置链式出站
 # - { name: WARP前置, <<: *pr, exclude-type: "wireguard" }
#   - { name: ipv4, type: select, proxies: [proxy-ipv4] }
 - { name: 全部节点, <<: *use }
 - { name: OpenAI, <<: *pr }
 - { name: Spotify, <<: *pr }
 - {
     name: 国内,
     type: select,
     proxies:
       [
         DIRECT,
         节点选择,
         香港,
         台湾,
         日本,
         韩国,
         新加坡,
         美国,
         其它地区,
         全部节点,
         自动选择,
       ],
   }
 # 其他就是所有规则没匹配到的
 # 可以理解为 ACL4SSR 配置里的 漏网之鱼
 # 换言之,其他走代理就是绕过中国大陆地址,不走就是 GFWList 模式
 - { name: 其他, <<: *pr }
 - { name: 广告拦截, type: select, proxies: [REJECT, DIRECT, 节点选择] }


 # 分隔,下面是地区分组
 - { name: 香港, <<: *use, filter: "(?i)港|hk|hongkong|hong kong" }
 - { name: 台湾, <<: *use, filter: "(?i)台|tw|taiwan" }
 - { name: 日本, <<: *use, filter: "(?i)日本|jp|japan" }
 - { name: 韩国, <<: *use, filter: "(?i)韩|kr|korea" }
 - { name: 美国, <<: *use, filter: "(?i)美|us|unitedstates|united states" }
 - { name: 新加坡, <<: *use, filter: "(?i)(新|sg|singapore)" }
 - {
     name: 其它地区,
     <<: *use,
     filter: "(?i)^(?!.*(?:🇭🇰|🇯🇵|🇺🇸|🇸🇬|🇨🇳|港|hk|hongkong|台|tw|taiwan|日|jp|japan|新|sg|singapore|美|us|unitedstates|韩|kr|korea)).*",
   }

 - { name: 自动选择, <<: *use, tolerance: 2, type: url-test, exclude-filter: "倍|air", interval: 180}

rules:
 # 绕过局域网地址
 - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
 - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
 - IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
 - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
 - RULE-SET,lan,DIRECT,no-resolve

 - DOMAIN-SUFFIX,xn--ngstr-lra8j.com,DIRECT,no-resolve
 - DOMAIN-SUFFIX,googleapis.cn,DIRECT,no-resolve
#   - DOMAIN-SUFFIX,firebaselogging-pa.googleapis.com,DIRECT,no-resolve
 - RULE-SET,FCM,DIRECT
 - RULE-SET,WeChat,DIRECT,no-resolve
 - GEOSITE,CN,国内
 - RULE-SET,ChinaMedia,DIRECT,no-resolve
 - RULE-SET,DouYin,DIRECT,no-resolve
 - RULE-SET,Speedtest,DIRECT,no-resolve
 - RULE-SET,Tencent,DIRECT,no-resolve
 - GEOSITE,CN,国内
 - RULE-SET,ChinaMedia,DIRECT,no-resolve
 - RULE-SET,DouYin,DIRECT,no-resolve
 - RULE-SET,Speedtest,DIRECT,no-resolve
 - GEOSITE,apple-cn,国内,no-resolve
 - GEOSITE,steam@cn,国内,no-resolve
 - RULE-SET,UnBan,DIRECT,no-resolve
 - RULE-SET,ChinaDomain,DIRECT,no-resolve
 - RULE-SET,whitelist_full,DIRECT,no-resolve
#pt
 - DOMAIN-SUFFIX,audiences.me,DIRECT,no-resolve
 - DOMAIN-SUFFIX,hhanclub.top,DIRECT,no-resolve
 - DOMAIN-SUFFIX,connects.icu,DIRECT,no-resolve
 - DOMAIN-SUFFIX,nextpt.net,DIRECT,no-resolve
 - DOMAIN-SUFFIX,m-team.cc,DIRECT,no-resolve
 - DOMAIN-SUFFIX,piggo.me,DIRECT,no-resolve
 - DOMAIN-SUFFIX,qingwapt.com,DIRECT,no-resolve
 - DOMAIN-SUFFIX,hdsky.me,DIRECT,no-resolve
 - DOMAIN-SUFFIX,pterclub.com,DIRECT,no-resolve
 - DOMAIN-KEYWORD,tracker,DIRECT,no-resolve

 # 若需禁用 QUIC 请取消注释 QUIC 两条规则
 # 防止 YouTube 等使用 QUIC 导致速度不佳, 禁用 443 端口 UDP 流量(不包括国内)
 - AND,(AND,(DST-PORT,443),(NETWORK,UDP)),(NOT,((GEOSITE,cn))),REJECT # quic
 - AND,(AND,(DST-PORT,443),(NETWORK,UDP)),(NOT,((GEOIP,CN))),REJECT # quic
 - RULE-SET,AWAvenue-Ads,广告拦截,,no-resolve
 - RULE-SET,ad-keyword,广告拦截,no-resolve
 - RULE-SET,BanAD,广告拦截,no-resolve
 - RULE-SET,BanEasyList,广告拦截,no-resolve
 - RULE-SET,BanEasyListChina,广告拦截,no-resolve
 - RULE-SET,BanEasyPrivacy,广告拦截,no-resolve
 - RULE-SET,BanProgramAD,广告拦截,no-resolve
# - GEOSITE,biliintl,哔哩东南亚
# - GEOSITE,bilibili,哔哩哔哩

 - GEOSITE,openai,OpenAI,no-resolve
 - RULE-SET,Claude,OpenAI,no-resolve
 - RULE-SET,Gemini,OpenAI,no-resolve
 - GEOSITE,spotify,Spotify,no-resolve
 - GEOSITE,apple,节点选择,no-resolve
 - GEOSITE,ehentai,节点选择,no-resolve
 - GEOSITE,github,节点选择,no-resolve
 - GEOSITE,twitter,节点选择,no-resolve
 - GEOSITE,youtube,节点选择,no-resolve
 - GEOSITE,google,节点选择,no-resolve
 # - GEOSITE,google-cn,Google # Google CN 不走代理会导致香港等地区节点 Play Store 异常
 - GEOSITE,telegram,节点选择,no-resolve
 - GEOSITE,netflix,节点选择,no-resolve
 - GEOSITE,bahamut,节点选择,no-resolve
 - GEOSITE,pixiv,节点选择,no-resolve
 - GEOSITE,steam,节点选择,no-resolve
 - GEOSITE,onedrive,节点选择,no-resolve
 - GEOSITE,microsoft,节点选择,no-resolve
 - GEOSITE,geolocation-!cn,节点选择,no-resolve
 - RULE-SET,blacklist_full,节点选择,no-resolve

 - GEOIP,CN,国内
 - RULE-SET,ChinaIp,国内
 - GEOIP,google,节点选择
 - GEOIP,netflix,节点选择
 - GEOIP,telegram,节点选择
 - RULE-SET,Telegram,节点选择
 - GEOIP,twitter,节点选择


 - MATCH,其他

使用proxy provider时使用filter无效,没有正常输出

- name: 香港节点
   type: select
   use:
     - 订阅一
   proxies:
     - 香港自动

期望结果

正常输出filter字段

- name: 香港节点
   type: select
   use:
     - 订阅一
   proxies:
     - 香港自动
   filter = "(港|hk|hongkong|hong kong)"

实际结果

- name: 香港节点
   type: select
   use:
     - 订阅一
   proxies:
     - 香港自动

错误信息

Seed680 avatar Jan 05 '26 06:01 Seed680