MetaCubeX / mihomo

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

[Bug] hysteria2协议在Linux系统下有证书问题 #993

Closed yyxida closed 7 months ago

yyxida commented 10 months ago

Verify steps

Mihomo version

alpha-460cc24

What OS are you seeing the problem on?

Linux

Mihomo config

- {name:hysteria2, server: xxxxxxx.aaaaaa.com, port: xxxxx, type: hysteria2, password: xxxxxxxxxx, up: "30 mbps", down: "300 mbps"}

Mihomo log

[TCP] dial 🚀 节点选择 (match DomainKeyword/github) 192.168.2.5:40006 --> raw.githubusercontent.com:443 error: CRYPTO_ERROR 0x12a (local): tls: failed to verify certificate: x509: certificate signed by unknown authority

Description

在软路由上的openclash-meta内核(alpha-gcc64297)和docker里(alpha-460cc24)运行,链接hysteria2就会有这个证书问题,docker下尝试apk add --no-cache ca-certificates依然报错certificate signed by unknown authority。Windows下使用clash-verge(1.18.0内核)链接hysteria2没有这个问题。

xishang0128 commented 10 months ago

@yyxida OpenWrt/docker的时间对吗,以及证书是否是知名ca颁发的证书

yyxida commented 10 months ago

@yyxida OpenWrt/docker的时间对吗,以及证书是否是知名ca颁发的证书

OpenWrt/docker的时间是正确的。 节点是自己搭建的,使用的是zerossl的ecc证书,docker容器中cat /etc/ca-certificates.conf可以找到其根证书mozilla/USERTrust_ECC_Certification_Authority.crt正确引用,openwrt没有去看,但是应该也是没有问题的。目前添加skip-cert-verify: true能够使用,但还是担心安全问题。

luckyyyyy commented 8 months ago

在 hy2中 同样遇到了 context deadline exceeded 错误

目前已知的信息是 在v1.18.0的版本中,会提示H3_REQUEST_CANCELLED (local),但不会造成两个节点都不可以使用的问题。 但在之后的版本,只要一旦某个节点出现问题,另一个hysteria2节点也无法使用。

缓解方式,在服务端配置quic参数后不再出现,但从观察来看,依然会造成初次访问比较慢的情况,这个现象不是一直存在,是一段时间一次。

例如


quic:
  initStreamReceiveWindow: 16777216
  maxStreamReceiveWindow: 16777216
  initConnReceiveWindow: 33554432
  maxConnReceiveWindow: 33554432
moranno commented 7 months ago

在 hy2中 同样遇到了 context deadline exceeded 错误

目前已知的信息是 在v1.18.0的版本中,会提示H3_REQUEST_CANCELLED (local),但不会造成两个节点都不可以使用的问题。 但在之后的版本,只要一旦某个节点出现问题,另一个hysteria2节点也无法使用。

缓解方式,在服务端配置quic参数后不再出现,但从观察来看,依然会造成初次访问比较慢的情况,这个现象不是一直存在,是一段时间一次。

例如

quic:
  initStreamReceiveWindow: 16777216
  maxStreamReceiveWindow: 16777216
  initConnReceiveWindow: 33554432
  maxConnReceiveWindow: 33554432

请问这个问题,你这边有没有进一步的进展?有没有解决思路?

我这边试了下用1.18.1版本目前观察下来没有问题,但1.18.2及以后版本,一直到最新的alpha版,都有这个问题。

Skyxim commented 7 months ago

是否尝试过全链证书

moranno commented 7 months ago

是否尝试过全链证书

我这边用的是amce部署的--fullchain-file 另外断流的报错是 context deadline exceeded 错误。好像这个报错和证书无关? 另外这边的设置是所有hy2节点都是 skip-cert-verify: true 的

yyxida commented 7 months ago

更换全链证书解决问题,感谢🙏