- 
                Notifications
    
You must be signed in to change notification settings  - Fork 3.4k
 
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
验证步骤
- 我已经阅读了 文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
 - 我仔细看过 文档 并未解决问题
 - 我已在 Issue Tracker 中寻找过我要提出的问题,并且没有找到
 - 我是中文用户,而非其他语言用户
 - 我已经使用最新的 Alpha 分支版本测试过,问题依旧存在
 - 我提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
 - 我提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器或者堆砌大量对于复现无用的配置等。
 - 我提供了完整的日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
 - 我直接使用 Mihomo 命令行程序重现了错误,而不是使用其他工具或脚本。
 
操作系统
Windows
系统版本
11
Mihomo 版本
1.19.11
配置文件
mode: rule
redir-port: 7895
tproxy-port: 7896
mixed-port: 7888
allow-lan: true
log-level: info
ipv6: true
external-controller: 127.0.0.1:9097
secret: set-your-secret
unified-delay: true
external-controller-cors:
  allow-private-network: true
  allow-origins:
  - tauri://localhost
  - http://tauri.localhost
  - https://yacd.metacubex.one
  - https://metacubex.github.io
  - https://board.zash.run.place
tcp-concurrent: true
skip-auth-prefixes:
- 127.0.0.1/8
- ::1/128
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://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb
sniffer:
  enable: true
  parse-pure-ip: true
  sniff:
    TLS:
      ports:
      - 443
      - 8443
    HTTP:
      ports:
      - 80
      - 8080-8880
      override-destination: true
  force-domain: []
geodata-mode: true
bind-address: '*'
keep-alive-interval: 15
find-process-mode: strict
profile:
  store-selected: true
  store-fake-ip: true
global-client-fingerprint: chrome
tun:
  enable: false
  stack: gvisor
  dns-hijack:
  - any:53
  strict-route: true
  auto-route: true
  auto-detect-interface: true
  device: Mihomo
  mtu: 1500
proxies:
proxy-groups:
rule-providers:
  reject:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt
    path: ./ruleset/reject.yaml
    interval: 86400
  icloud:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt
    path: ./ruleset/icloud.yaml
    interval: 86400
  apple:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt
    path: ./ruleset/apple.yaml
    interval: 86400
  google:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt
    path: ./ruleset/google.yaml
    interval: 86400
  proxy:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt
    path: ./ruleset/proxy.yaml
    interval: 86400
  direct:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt
    path: ./ruleset/direct.yaml
    interval: 86400
  private:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt
    path: ./ruleset/private.yaml
    interval: 86400
  gfw:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt
    path: ./ruleset/gfw.yaml
    interval: 86400
  greatfire:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt
    path: ./ruleset/greatfire.yaml
    interval: 86400
  tld-not-cn:
    type: http
    behavior: domain
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt
    path: ./ruleset/tld-not-cn.yaml
    interval: 86400
  telegramcidr:
    type: http
    behavior: ipcidr
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt
    path: ./ruleset/telegramcidr.yaml
    interval: 86400
  cncidr:
    type: http
    behavior: ipcidr
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt
    path: ./ruleset/cncidr.yaml
    interval: 86400
  lancidr:
    type: http
    behavior: ipcidr
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt
    path: ./ruleset/lancidr.yaml
    interval: 86400
  applications:
    type: http
    behavior: classical
    format: yaml
    url: https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt
    path: ./ruleset/applications.yaml
    interval: 86400
  bing:
    type: http
    behavior: classical
    format: yaml
    url: https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Bing/Bing.yaml
    path: ./ruleset/bing.yaml
    interval: 86400
  microsoft:
    type: http
    behavior: classical
    format: yaml
    url: https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Microsoft/Microsoft.yaml
    path: ./ruleset/microsoft.yaml
    interval: 86400
  youtube:
    type: http
    behavior: classical
    format: yaml
    url: https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/YouTube/YouTube.yaml
    path: ./ruleset/youtube.yaml
    interval: 86400
  bilibiliintl:
    type: http
    behavior: classical
    format: yaml
    url: https://gcore.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/BiliBiliIntl/BiliBiliIntl.yaml
    path: ./ruleset/bilibiliintl.yaml
    interval: 86400
  videocdn:
    type: http
    behavior: classical
    format: yaml
    url: https://raw.githubusercontent.com/weineo/clashrule/refs/heads/main/VideoCDN.yaml
    path: ./ruleset/videocdn.yaml
    interval: 86400
rules:
- DOMAIN-KEYWORD,freeok,DIRECT
- DOMAIN-KEYWORD,dami,DIRECT
- DOMAIN-KEYWORD,dmflm,DIRECT
- DOMAIN-KEYWORD,ijujitv,DIRECT
- DOMAIN-KEYWORD,dandanju.,Proxy
- DOMAIN-SUFFIX,kan.cc,Proxy
- AND,((DOMAIN-REGEX,^[a-z0-9]{10,15}\.com$),(IP-ASN,13335)),DIRECT
- DOMAIN,login.microsoftonline.com,DIRECT
- DOMAIN,self.events.data.microsoft.com,DIRECT
- DOMAIN-SUFFIX,azurefd.net,DIRECT
- DOMAIN-SUFFIX,storage.live.com,DIRECT
- DOMAIN-SUFFIX,skydrive.wns.windows.com,DIRECT
- DOMAIN-SUFFIX,cnki.net,DIRECT
- DOMAIN-SUFFIX,ieee.org,DIRECT
- DOMAIN-SUFFIX,acm.org,DIRECT
- DOMAIN-SUFFIX,imgtu.com,DIRECT
- DOMAIN-SUFFIX,dpdk.org,DIRECT
- DOMAIN-SUFFIX,freenom.com,DIRECT
- DOMAIN-SUFFIX,sciencedirect.com,DIRECT
- DOMAIN-SUFFIX,springer.com,DIRECT
- DOMAIN,onedrive.live.com,Proxy
- DOMAIN-SUFFIX,69shuba.com,Proxy
- DOMAIN-SUFFIX,erome.com,Proxy
- DOMAIN-KEYWORD,xingjiabijichang.com,Proxy
- DOMAIN-SUFFIX,rewards.bing.com,Bing
- DOMAIN-SUFFIX,rewards.microsoft.com,Bing
- DOMAIN-SUFFIX,gemini.google.com,ArtIntel
- DOMAIN-SUFFIX,copilot.microsoft.com,ArtIntel
- DOMAIN-SUFFIX,sydney.bing.com,ArtIntel
- DOMAIN-SUFFIX,www.bing.com/images,ArtIntel
- DOMAIN-SUFFIX,www.bing.com/visualsearch,ArtIntel
- RULE-SET,videocdn,VideoCDN
- GEOSITE,Private,DIRECT
- GEOSITE,Bing,Bing
- GEOSITE,Openai,ArtIntel
- GEOSITE,Category-games@cn,Mainland
- GEOSITE,Category-games,Games
- GEOSITE,Github,Proxy
- GEOSITE,Telegram,Telegram
- GEOSITE,Bilibili,BiliBili
- GEOSITE,Youtube,Streaming
- GEOSITE,Disney,Streaming
- GEOSITE,Netflix,Streaming
- GEOSITE,HBO,Streaming
- GEOSITE,Primevideo,Streaming
- GEOSITE,Microsoft@cn,Mainland
- GEOSITE,Apple@cn,Mainland
- RULE-SET,youtube,Streaming
- RULE-SET,bing,Bing
- RULE-SET,microsoft,Microsoft
- RULE-SET,private,DIRECT
- RULE-SET,applications,DIRECT
- RULE-SET,icloud,DIRECT
- RULE-SET,google,Proxy
- RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,Proxy
- RULE-SET,proxy,Proxy
- RULE-SET,direct,DIRECT
- GEOSITE,CN,Mainland
- GEOIP,lan,DIRECT,no-resolve
- GEOIP,CN,Mainland,no-resolve
- MATCH,Final描述
在rules中,在AND中使用DOMAIN-REGEX会出现识别bug,无法正常处理正则表达式。
例子:使用规则
AND,((DOMAIN-REGEX,^[a-z0-9]{10,15}.com$),(IP-ASN,13335)),DIRECT
尝试识别所有使用cloudflare的,顶级域名com前带有10-15位字符的网址并走直连,
如thwzv5ijh9wd.com 。
但是,软件识别规则为AND((DomainRegex,^[a-z0-9]{10) && (IPASN,13335))
逗号后的部分无法识别,导致完全无法匹配,还请改进。
重现方式
加入任何AND规则,其中含有DOMAIN-REGEX,后跟的正则表达式内有**,逗号**,就会导致规则识别异常,逗号后的部分无法识别
日志
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working

