MetaCubeX / mihomo

A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.
https://wiki.metacubex.one
MIT License
15.28k stars 2.54k forks source link

[Bug] 路由规则集没有按照顺序执行, 有时正常有时不正常 #1004

Closed bakasine closed 7 months ago

bakasine commented 7 months ago

Verify steps

Mihomo version

1.18.0

What OS are you seeing the problem on?

Windows

Mihomo config

rules:
  # REJECT
  - RULE-SET,reject,REJECT
  - RULE-SET,privacy,REJECT
  - RULE-SET,hijacking,REJECT
  - RULE-SET,my-reject,REJECT
  - RULE-SET,miui,REJECT
  # CUSTOM
  - RULE-SET,game,GAME
  - RULE-SET,my-direct,DIRECT

Mihomo log

No response

Description

用自己的服务器搭建幻兽帕鲁的服务器 game里是进程模式包含了"- PROCESS-NAME,Palworld-Win64-Shipping.exe" 然后这个域名前缀在顺序下方的 my-direct 里"- DOMAIN-SUFFIX,xxxxxx" 结果游戏连接帕鲁服务器的时候走的是直连

image

而且这种情况是时有时无的, 有时候他又能正常走game的代理, 有时候重启发现很卡一看连接他又是走的直连

invisprints commented 7 months ago

规则判断确实有问题,明明都指定Google Bard走AI通道了,却还是走得最末的国际通道 2024-01-26 06-11-48 2024-01-26 06-12-34 2024-01-26 06-12-57

invisprints commented 7 months ago

BTW, 不管是 Alpha 还是稳定版都有这个问题,而我切换回 CFW 或者 Stash 就是正常走 AI 通道

Paulgudring commented 7 months ago

@bakasine @invisprints udp的问题吧,游戏端用udp传输流量,网页端的quic协议也是基于udp的。匹配到的节点不支持udp,自动向下匹配了。可以用network规则搭配逻辑规则/子规则做筛选。

invisprints commented 7 months ago

我截图上面显示的是走的TCP诶,而且开全局是能走我期望的日本Proxy的 @Paulgudring

Paulgudring commented 7 months ago

我截图上面显示的是走的TCP诶,而且开全局是能走我期望的日本Proxy的 @Paulgudring

规则集是啥样的👀

invisprints commented 7 months ago

我截图上面显示的是走的TCP诶,而且开全局是能走我期望的日本Proxy的 @Paulgudring

规则集是啥样的👀

payload:
  - DOMAIN, bard.google.com
  - DOMAIN, makersuite.google.com
  - DOMAIN, generativelanguage.googleapis.com
  - DOMAIN-SUFFIX, generativeai.google
  - DOMAIN-KEYWORD, palm2
  - DOMAIN, www.google.com
  - DOMAIN, labs.google.com
  - DOMAIN-SUFFIX, labs.google
invisprints commented 7 months ago

这是一份最小的可复现配置文件,神奇的是尽管我指定 Google Bard 和 OpenAI 都走同一条线路,OpenAI 遵守了规则但 Google Bard 却没有

config.yaml ```yaml mixed-port: 7890 allow-lan: true bind-address: '*' mode: rule log-level: info ipv6: true proxy-providers: ProxyCloud: type: http url: interval: 3600 path: ./proxies/proxy.yaml health-check: enable: true interval: 600 url: http://www.gstatic.com/generate_204 proxies: proxy-groups: - name: 🚀 手动切换 type: select use: - ProxyCloud proxies: - 🇭🇰香港 - 🇯🇵日本 - 🇺🇲美国 - name: 🌏 国际网站 type: select proxies: - 🚀 手动切换 - DIRECT - name: 🌏 国内网站 type: select proxies: - DIRECT - 🚀 手动切换 - name: AI type: select proxies: - 🚀 手动切换 - 🇺🇲美国 - 🇯🇵日本 - DIRECT - name: 🐟 漏网之鱼 type: select proxies: - DIRECT - 🚀 手动切换 - name: 🇭🇰香港 type: url-test filter: 港|HK|🇭🇰|(?i)Hong use: - ProxyCloud url: "http://www.gstatic.com/generate_204" interval: 300 - name: 🇯🇵日本 type: url-test filter: 日|东京|JP|🇯🇵|(?i)Japan use: - ProxyCloud url: "http://www.gstatic.com/generate_204" interval: 300 - name: 🇺🇲美国 type: url-test filter: 美|US|🇺🇸|(?i)States|American use: - ProxyCloud url: "http://www.gstatic.com/generate_204" interval: 300 rule-providers: LocalAreaNetwork: type: http behavior: classical url: https://mirror.ghproxy.com/https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/LocalAreaNetwork.yaml path: ./ruleset/UnBan.yaml interval: 86400 UnBan: type: http behavior: classical url: https://mirror.ghproxy.com/https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/UnBan.yaml path: ./ruleset/UnBan.yaml interval: 86400 ChinaDomain: type: http behavior: classical url: "https://mirror.ghproxy.com/https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/ChinaDomain.yaml" path: ./ruleset/ChinaDomain.yaml interval: 86400 OpenAI: type: http behavior: classical url: "https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/Ruleset/OpenAi.yaml" path: ./ruleset/openai.yaml interval: 86400 GoogleBard: type: http behavior: classical url: "https://github.com/blackmatrix7/ios_rule_script/raw/master/rule/Clash/BardAI/BardAI.yaml" path: ./ruleset/BardAI.yaml interval: 86400 ClaudeAI: type: http behavior: classical url: "https://mirror.ghproxy.com/https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/Ruleset/ClaudeAI.yaml" path: ./ruleset/ClaudeAI.yaml interval: 86400 Global: type: http behavior: classical url: "https://mirror.ghproxy.com/https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/Providers/ProxyGFWlist.yaml" path: ./ruleset/Global.yaml interval: 86400 rules: - RULE-SET,UnBan,DIRECT - RULE-SET,LocalAreaNetwork,DIRECT - RULE-SET,GoogleBard,AI - RULE-SET,OpenAI,AI - RULE-SET,ClaudeAI,AI - RULE-SET,Global,🌏 国际网站 - RULE-SET,ChinaDomain,🌏 国内网站 - GEOIP,CN,🌏 国内网站 - MATCH,🐟 漏网之鱼 ```

2024-01-27 03-13-04

Paulgudring commented 7 months ago

@invisprints 没有看到tcp,是我粗心了。 提供的配置无法复现,可以正常使用。而且这个rule-set只有一条domain-suffix,没有必要用。你检查一下这个规则集有没有载入到本地? image

invisprints commented 7 months ago

@invisprints 没有看到tcp,是我粗心了。 提供的配置无法复现,可以正常使用。而且这个rule-set只有一条domain-suffix,没有必要用。你检查一下这个规则集有没有载入到本地? image

十分感谢,问题已解决,是因为我配置文件这里,逗号之后多了空格🤦‍https://github.com/MetaCubeX/mihomo/issues/1004#issuecomment-1913041484 因为看的Provider里面显示了正常的规则条数,还以为就已经解析出来了 image