mihomo
mihomo copied to clipboard
[Bug] proxy-providers下配置了health-check: enable: true的节点,会在刷新配置时立即url-test。proxy-groups下proxies里面的节点,则不会立即测试,而是根据interval的设置才测试
Verify steps
- [X] 确保你使用的是本仓库最新的的 clash 或 clash Alpha 版本 Ensure you are using the latest version of Clash or Clash Premium from this repository.
- [ ] 如果你可以自己 debug 并解决的话,提交 PR 吧 Is this something you can debug and fix? Send a pull request! Bug fixes and documentation fixes are welcome.
- [X] 我已经在 Issue Tracker 中找过我要提出的问题 I have searched on the issue tracker for a related issue.
- [X] 我已经使用 Alpha 分支版本测试过,问题依旧存在 I have tested using the dev branch, and the issue still exists.
- [X] 我已经仔细看过 Documentation 并无法自行解决问题 I have read the documentation and was unable to solve the issue.
- [X] 这是 Clash 核心的问题,并非我所使用的 Clash 衍生版本(如 OpenClash、KoolClash 等)的特定问题 This is an issue of the Clash core per se, not to the derivatives of Clash, like OpenClash or KoolClash.
Clash version
alpha-1a9104c
What OS are you seeing the problem on?
Windows
Clash config
external-controller: 127.0.0.1:9090 #控制器监听地址
external-ui: yacd-meta #http服务路径,可以放静态web网页,如yacd的控制面板,可通过`http://{{external-controller}}/ui`直接使用,添加完后需要右键退出再重启才能生效
secret: "" #控制器登录密码
tun:
enable: true
stack: system
dns-hijack:
- 'any:53'
- 'tcp://any:53'
auto-route: true
auto-detect-interface: true
strict-route: true
proxy-groups:
- name: 节点选择
type: select
proxies:
- 自动选择
- jp-test
- sg-test
- name: 自动选择
type: url-test
proxies:
- jp-test
- sg-test
interval: 3600
lazy: false
url: https://www.google.com/generate_204
- name: "机场"
type: url-test
filter: "香港"
proxies:
- REJECT
use:
- 机场.yaml
- name: proxy-provider-converter
type: url-test
proxies:
- sg-test
- jp-test
interval: 3600
lazy: false
url: https://www.google.com/generate_204
proxies:
- name: sg-test
type: vmess
server:
port:
uuid:
alterId: 0
cipher: auto
network: grpc
tls: true
udp: true
xudp: true
tfo: true
ip-version: ipv4
skip-cert-verify: false
client-fingerprint: chrome
servername:
grpc-opts:
grpc-service-name: ""
- name: jp-test
type: vmess
server:
port:
uuid:
alterId: 0
cipher: auto
network: grpc
tls: true
udp: true
xudp: true
tfo: true
ip-version: ipv4
skip-cert-verify: false
client-fingerprint: chrome
servername:
grpc-opts:
grpc-service-name: ""
port: 7890 # HTTP(S) 代理服务器端口
socks-port: 7891 # SOCKS5 代理端口
mixed-port: 10801 # HTTP(S) 和 SOCKS 代理混合端口
inbound-tfo: true
mode: rule
ipv6: true
log-level: debug
find-process-mode: always
allow-lan: false
geodata-mode: true
tcp-concurrent: true
geox-url:
geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
geosite: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
mmdb: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb"
rules:
- AND,((NETWORK,UDP),(DST-PORT,443)),REJECT
- GEOSITE,category-ads-all,REJECT
#- GEOSITE,win-update,REJECT
- DOMAIN-KEYWORD,services.googleapis.cn,节点选择
- GEOSITE,tld-cn,DIRECT
- GEOSITE,private,DIRECT
- DOMAIN-KEYWORD,proxy-provider-converter,proxy-provider-converter
- GEOSITE,geolocation-!cn,节点选择
- GEOSITE,cn,DIRECT
- GEOIP,cn,DIRECT
- GEOIP,private,DIRECT
# - GEOIP,telegram,telegram
- MATCH,节点选择
- MATCH,REJECT
proxy-providers:
机场.yaml:
type: http
url: "https://proxy-provider-converter.vercel.app"
interval: 43200
path: 机场.yaml
health-check:
enable: true
interval: 3600
lazy: false
url: https://www.google.com/generate_204
profile:
# 存储 select 选择记录
store-selected: true
# 持久化 fake-ip
store-fake-ip: true
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-filter:
#https://github.com/vernesong/OpenClash/blob/master/luci-app-openclash/root/etc/openclash/custom/openclash_custom_fake_filter.list
use-hosts: true
nameserver-policy:
'services.googleapis.cn':
- '1.1.1.1#节点选择'
'geosite:tld-cn':
- 223.5.5.5
'geosite:private':
- 223.5.5.5
'geosite:geolocation-!cn':
- '8.8.8.8#节点选择'
'geosite:cn':
- 223.5.5.5
nameserver:
- '8.8.8.8#节点选择'
proxy-server-nameserver:
- 223.5.5.5
hosts:
#支持通配符(非通配符域名优先级高于通配符域名)
'ipv6.msftconnecttest.com': 'www.msftconnecttest.com'
'ipv6.msftncsi.com': 'www.msftncsi.com'
Clash log
23-05-15 20:51:35[ info ][TCP] 127.0.0.1:52120(chrome.exe) --> ipinfo.io:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:35[ debug ][Rule] use default rules
23-05-15 20:51:35[ info ][TCP] 127.0.0.1:52119(chrome.exe) --> ipinfo.io:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:35[ debug ][Rule] use default rules
23-05-15 20:51:33[ info ][TCP] 127.0.0.1:52118(chrome.exe) --> ipinfo.io:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:33[ debug ][Rule] use default rules
23-05-15 20:51:33[ info ][TCP] 127.0.0.1:52117(chrome.exe) --> safebrowsing.google.com:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:33[ debug ][Rule] use default rules
23-05-15 20:51:33[ info ][TCP] 127.0.0.1:52116(chrome.exe) --> ipinfo.io:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:33[ debug ][Rule] use default rules
23-05-15 20:51:33[ info ][TCP] 127.0.0.1:52115(chrome.exe) --> safebrowsing.google.com:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:33[ debug ][Rule] use default rules
23-05-15 20:51:27[ info ][TCP] 198.18.0.1:51807(svchost.exe) --> www.msftconnecttest.com:80 match GeoSite(private) using DIRECT
23-05-15 20:51:27[ info ][TCP] 198.18.0.1:51806(svchost.exe) --> www.msftconnecttest.com:80 match GeoSite(private) using DIRECT
23-05-15 20:51:27[ debug ][DNS] www.msftconnecttest.com --> [], from udp://223.5.5.5:53
23-05-15 20:51:27[ debug ][DNS] resolve www.msftconnecttest.com from udp://223.5.5.5:53
23-05-15 20:51:27[ debug ][Rule] use default rules
23-05-15 20:51:27[ debug ][Rule] use default rules
23-05-15 20:51:27[ debug ][DNS] www.msftconnecttest.com --> [184.26.43.82 184.26.43.73], from udp://223.5.5.5:53
23-05-15 20:51:27[ debug ][DNS] resolve www.msftconnecttest.com from udp://223.5.5.5:53
23-05-15 20:51:27[ info ][TCP] 127.0.0.1:51805(WINWORD.EXE) --> d.docs.live.net:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:27[ debug ][Rule] use default rules
23-05-15 20:51:26[ info ][TCP] 127.0.0.1:51803(WINWORD.EXE) --> collabrtc.officeapps.live.com:443 match GeoSite(geolocation-!cn) using 节点选择[jp-test]
23-05-15 20:51:26[ debug ]use specified fingerprint:Chrome
23-05-15 20:51:26[ debug ][Rule] use default rules
23-05-15 20:51:11[ info ][TCP] clash.meta --> proxy-provider-converter.vercel.app:443 match DomainKeyword(proxy-provider-converter) using proxy-provider-converter[sg-test]
23-05-15 20:51:11[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:11[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:11[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:11[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:11[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:11[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:11[ debug ][Rule] use default rules
23-05-15 20:51:10[ debug ]Finish A Health Checking
23-05-15 20:51:10[ debug ]Health Checked [1倍] 加拿大01 : true 1512 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 新加坡02 : true 499 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 德国01 : true 923 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 新加坡01 : true 335 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 阿根廷01 : true 1189 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 美国01 : true 1179 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 土耳其01 : true 1104 ms
23-05-15 20:51:10[ debug ]Health Checked [1倍] 英国01 : true 828 ms
23-05-15 20:51:09[ debug ]Health Checked [1倍] 日本02 : true 434 ms
23-05-15 20:51:09[ debug ]Health Checked [1倍] 日本01 : true 332 ms
23-05-15 20:51:09[ info ][TCP] clash.meta --> proxy-provider-converter.vercel.app:443 match DomainKeyword(proxy-provider-converter) using proxy-provider-converter[sg-test]
23-05-15 20:51:09[ info ][TCP] clash.meta --> proxy-provider-converter.vercel.app:443 match DomainKeyword(proxy-provider-converter) using proxy-provider-converter[sg-test]
23-05-15 20:51:09[ debug ]Health Checking [1倍] 新加坡02
23-05-15 20:51:09[ debug ]Health Checked [1倍] 美国02 : true 932 ms
23-05-15 20:51:09[ debug ]Health Checking [1倍] 新加坡01
23-05-15 20:51:09[ debug ]Health Checked [1倍] 台湾02 : true 349 ms
23-05-15 20:51:09[ debug ]Health Checking [1倍] 日本01
23-05-15 20:51:09[ debug ]Health Checked [1倍] 印度01 : true 643 ms
23-05-15 20:51:09[ debug ][DNS] --> [], from udp://223.5.5.5:53
23-05-15 20:51:09[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:09[ debug ]Health Checking [1倍] 台湾02
23-05-15 20:51:09[ debug ]Health Checked [1倍] 香港01 : true 550 ms
23-05-15 20:51:09[ debug ]Health Checking [1倍] 日本02
23-05-15 20:51:09[ debug ]Health Checked [1倍] 泰国01 : true 545 ms
23-05-15 20:51:09[ debug ]Health Checking [1倍] 德国01
23-05-15 20:51:09[ debug ]Health Checked [1倍] 越南01 : true 457 ms
23-05-15 20:51:09[ debug ]Health Checking [1倍] 英国01
23-05-15 20:51:09[ debug ]Health Checked [1倍] 香港02 : true 253 ms
23-05-15 20:51:09[ debug ]Health Checking [1倍] 加拿大01
23-05-15 20:51:09[ debug ]Health Checked [1倍] 台湾01 : true 219 ms
23-05-15 20:51:08[ debug ][DNS] --> [], from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] --> [], from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS]--> [], from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] --> [], from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] --> [], from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] --> [], from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ]use specified fingerprint:Chrome
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][Process] find process proxy-provider-converter.vercel.app: process not found
23-05-15 20:51:08[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][Rule] use default rules
23-05-15 20:51:08[ debug ][Rule] use default rules
23-05-15 20:51:08[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ][DNS] resolve from udp://223.5.5.5:53
23-05-15 20:51:08[ debug ]Health Checking [1倍] 台湾01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 印度01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 美国02
23-05-15 20:51:08[ debug ]Health Checking [1倍] 土耳其01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 香港02
23-05-15 20:51:08[ debug ]Health Checking [1倍] 泰国01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 越南01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 美国01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 阿根廷01
23-05-15 20:51:08[ debug ]Health Checking [1倍] 香港01
23-05-15 20:51:08[ debug ]Start New Health Checking
23-05-15 20:51:08[ info ]Start initial compatible provider proxy-provider-converter
23-05-15 20:51:08[ info ]Start initial compatible provider 节点选择
23-05-15 20:51:08[ info ]Start initial compatible provider 自动选择
23-05-15 20:51:08[ info ]Start initial provider 机场.yaml
23-05-15 20:51:08[ info ]Start initial compatible provider 机场
23-05-15 20:51:08[ info ]Start initial compatible provider default
23-05-15 20:51:08[ warn ][TUN] default interface changed by monitor, => WLAN
23-05-15 20:51:08[ debug ]adding geosite policy: cn inversed false
23-05-15 20:51:08[ debug ]adding geosite policy: geolocation-!cn inversed false
23-05-15 20:51:08[ debug ]adding geosite policy: private inversed false
23-05-15 20:51:08[ debug ]adding geosite policy: tld-cn inversed false
23-05-15 20:51:08[ info ]Use tcp concurrent
23-05-15 20:51:08[ info ]Sniffer is closed
23-05-15 20:51:08[ info ]Initial configuration complete, total time: 361ms
23-05-15 20:51:08[ info ]Start initial GeoIP rule private => DIRECT, records: 17
23-05-15 20:51:08[ info ]Start initial GeoIP rule cn => DIRECT, records: 10851
23-05-15 20:51:08[ info ]Start initial GeoSite rule cn => DIRECT, records: 65653
23-05-15 20:51:08[ info ]Start initial GeoSite rule geolocation-!cn => 节点选择, records: 35580
23-05-15 20:51:08[ info ]Start initial GeoSite rule private => DIRECT, records: 127
23-05-15 20:51:08[ info ]Start initial GeoSite rule tld-cn => DIRECT, records: 15
23-05-15 20:51:08[ info ]Start initial GeoSite rule category-ads-all => REJECT, records: 59273
23-05-15 20:51:08[ info ]Geodata Loader mode: memconservative
23-05-15 20:51:08[ info ]Start initial configuration in progress
Description
类似问题 https://github.com/MetaCubeX/Clash.Meta/issues/521
使用的是clash verge,每次应用配置时,只有proxy-providers下的机场节点会立即进行url-test。而proxy-groups中的节点则不会立即进行测试。上面的配置中,jp-test是一个完全不可用的节点,但是由于排在第一个,不会自动切换,要等interval,或者必须手动点击测试,才能自动切换到可用的节点
遇到了同样的问题
clash verge,同样碰到这个问题。原版正常的。希望能够修改相关逻辑
meta 触发第一次测试是在 Provider 更新或者加载完成,导致了纯内置节点的策略组测试失效
同样遇到 最新稳定版,未使用 proxy-providers