mihomo icon indicating copy to clipboard operation
mihomo copied to clipboard

[Bug] clash.meta内核下tuic多线程测速崩溃

Open lateid opened this issue 2 years ago • 18 comments

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

clash -1.14.5 & clash -Prerelease-Alpha

What OS are you seeing the problem on?

Windows

Clash config

mixed-port: *

tcp-concurrent: true
geodata-mode: true
global-client-fingerprint: random

allow-lan: true
bind-address: "*"
log-level: info
external-controller: *
secret: *

# DNS配置
dns:
  enable: true # 关闭将使用系统 DNS
  prefer-h3: true # 开启 DoH 支持 HTTP/3,将并发尝试
  listen: 0.0.0.0:53 # 开启 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 池设置
  
  nameserver:
    - https://doh.pub/dns-query # DNS over HTTPS
    - https://dns.alidns.com/dns-query#h3=true # 强制 HTTP/3,与 perfer-h3 无关,强制开启 DoH 的 HTTP/3 支持,若不支持将无法使用
    - https://mozilla.cloudflare-dns.com/dns-query#DNS&h3=true # 指定策略组和使用 HTTP/3
    - 8.8.8.8 # default value
    - tls://223.5.5.5:853 # DNS over TLS
    - dhcp://en0 # dns from dhcp
    - quic://dns.adguard.com:784 # DNS over QUIC
    # - '8.8.8.8#en0' # 兼容指定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
    "www.baidu.com,+.google.cn": [223.5.5.5, https://dns.alidns.com/dns-query]
tun:
  enable: true
  stack: gvisor
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

# 嗅探域名 可选配置
sniffer:
  enable: false
  override-destination: false
  sniff: # TLS 默认如果不配置 ports 默认嗅探 443
    TLS:
    #  ports: [443, 8443]
    
    # 默认嗅探 80
    HTTP: # 需要嗅探的端口
      
      ports: [80, 8080-8880]
      # 可覆盖 sniffer.override-destination
      override-destination: true
  force-domain:
    - +.v2ex.com
  sniffing:
    - tls
    - http
  port-whitelist:
    - "80"
    - "443"
    # - 8000-9999
proxies:
   - name: "hinet"
      server: *
      port: 33552
      type: tuic
      uuid: *
      password: *
      # heartbeat-interval: 10000
      alpn: [h3]
      disable-sni: true
      reduce-rtt: true
      udp-relay-mode: quic # Available: "native", "quic". Default: "native"
      congestion-controller: bbr # Available: "cubic", "new_reno", "bbr". Default: "cubic"
      # max-udp-relay-packet-size: 1500
      fast-open: true
      # max-open-streams: 100 # default 100, too many open streams may hurt performance
      sni: *

Clash log

No response

Description

使用clash.meta内核,tuic协议的代理。多线程speedtest测速时,下载速度测试完后无法测试上传速度,此时所有的节点显示超时网络连接失败,但是其他设备使用同一节点一切正常,实际情况应为本地clash.meta内核崩溃。垦请大家测试一下,并向大家咨询是否有解决方法。

lateid avatar Jun 15 '23 07:06 lateid

已排除服务端oom,初步认为是客户端的问题。单线程测速没有该问题。

lateid avatar Jun 15 '23 07:06 lateid

@lateid 崩溃?能否提供崩溃时的软件日志

Skyxim avatar Jun 15 '23 07:06 Skyxim

@lateid 崩溃?能否提供崩溃时的软件日志

@lateid 崩溃?能否提供崩溃时的软件日志

我不知道如何调取软件日志,我的环境是window-clash for window GUI-clash.meta内核。clash.meta程序没有退出运行,但是此时所有节点均超时(实际上这些节点在其他设备上正常)。

lateid avatar Jun 15 '23 07:06 lateid

@lateid cfw 的话你看看用户目录,有个 .config 文件夹(可能是隐藏目录)在这里面应该有他存储的东西

Skyxim avatar Jun 15 '23 07:06 Skyxim

@lateid cfw 的话你看看用户目录,有个 .config 文件夹(可能是隐藏目录)在这里面应该有他存储的东西

日志中没有error,warning也是一些无关信息,内核并没有崩溃或退出。问题补充:多线程测试后有时候会让所有节点超时,有时候仅测试的那个tuic协议节点一直超时。此时手动关闭所有连接,这个tuic节点就会恢复正常。日志文件我稍后上传

lateid avatar Jun 15 '23 08:06 lateid

image 表现为一直卡在这个状态

lateid avatar Jun 15 '23 08:06 lateid

和我在使用iOS上的stash表现一致,多线程测速,无法完成上传测试,然后在观察stash上已经建立的连接,发现收发的数据都是0,在服务器上看tuic的日志,发现服务器那边还是建立了连接。

nasaboy avatar Jun 15 '23 11:06 nasaboy

和我在使用iOS上的stash表现一致,多线程测速,无法完成上传测试,然后在观察stash上已经建立的连接,发现收发的数据都是0,在服务器上看tuic的日志,发现服务器那边还是建立了连接。

我的stash客户端和windows下clash.meta内核均有这个问题

lateid avatar Jun 15 '23 11:06 lateid

@lateid ?stash 也有是什么意思 也会测试 断网?

Skyxim avatar Jun 15 '23 11:06 Skyxim

@lateid ?stash 也有是什么意思 也会测试 断网?

stash也会有同样的现象。tuic协议的节点测speedtest多线程测完下载后无法测上传,此时节点显示超时。

lateid avatar Jun 15 '23 11:06 lateid

@lateid 服务器使用的 meta 还是 tuic 原版,尝试替换

Skyxim avatar Jun 15 '23 11:06 Skyxim

@lateid 服务器使用的 meta 还是 tuic 原版,尝试替换

服务端使用原版tuic

lateid avatar Jun 15 '23 11:06 lateid

在阿里云国际搭了个tuic服务器,然后在stash里添加,用speedtest测试又没问题,不确定是哪个出问题了。

nasaboy avatar Jun 22 '23 03:06 nasaboy

麻烦提供下崩溃时 meta 的日志,使用 debug 等级 是否能确定非 OOM

Skyxim avatar Jun 22 '23 11:06 Skyxim

同,上传在0-1Mbps之间浮动,用官方tuic-client没有问题

ahdiua avatar Jul 26 '23 16:07 ahdiua

离谱了,我更奇怪,我用的clash mate for android客户端vps使用的reality协议连接后使用speedtest测速,下载可以正常测试,测试上传就会卡住,此时vps内存,cpu全部吃满直接崩溃掉了,测试了三次都是这样!这个bug太离谱了希望修复!!!

keaidang avatar Aug 04 '23 17:08 keaidang

服务器开启一个较大的 swap 试试,如果正常了说明需要 swap

xiaorong61 avatar Jan 19 '25 10:01 xiaorong61