-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Closed as not planned
Labels
Description
验证步骤
- 我已经阅读了 文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
- 我仔细看过 文档 并未解决问题
- 我已在 Issue Tracker 中寻找过我要提出的问题,并且没有找到
- 我是中文用户,而非其他语言用户
- 我已经使用最新的 Alpha 分支版本测试过,问题依旧存在
- 我提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
- 我提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器或者堆砌大量对于复现无用的配置等。
- 我提供了完整的日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
- 我直接使用 Mihomo 命令行程序重现了错误,而不是使用其他工具或脚本。
操作系统
Android
系统版本
Android15
Mihomo 版本
v1.19.3
配置文件
proxies:
- { name: '[AnyTls]', type: anytls, server: xx.xx.xx, port: 443, password: password, udp: true, idle-session-check-interval: 30, idle-session-timeout: 30, min-idle-session: 4, skip-cert-verify: false, apln: [h2, http/1.1], client-fingerprint: chrome }
描述
disable-keep-alive在安卓默认为true,anytls的min-idle-session确定了保留的session数但并未考虑其底层tcp连接状态。在手机锁屏后一段时间后,服务端持续未收到keepalive包断开tcp连接,而在tcp上的旧session并未检测连接状态只是按min-idle-session数进行了保留。下次手机解锁后会依然尝试用这些旧session直到经过
for i := 0; i < 3; i++ {
session, err = c.findSession(ctx)
if session == nil {
return nil, fmt.Errorf("failed to create session: %w", err)
}
stream, err = session.OpenStream()
if err != nil {
_ = session.Close()
continue
}
break
}
这里的逻辑完全关闭完现存的旧连接。以我min-idle-session: 4的配置来说需要逐一关闭两轮,第一轮抛出一个too many closed session 然后需要下一次尝试建立连接才会再走一次逐一关闭,关闭掉剩下的一个session,创建新的session。而这其实会造成开屏后较长时间的断流不可用。
重现方式
环境安卓 配置anytls协议min-idle-session大于0 最好大于3
待息屏一段时间服务端/运营商断开tcp连接后 开启屏幕会触发一段时间的断流
其他配置了keepalive的系统平台无问题,安卓配置min-idle-session=0无问题
日志
日志中未发现有用信息
10:56:25开屏 持续断流至10:57:28恢复 持续1分钟
10:56:25.276 Debug: [Rule] use default rules
10:56:25.279 Debug: [PKG] 172.19.0.1:55326 --> 91.108.56.163:5222 by 10373[org.telegram.messenger]
10:56:25.279 Info: [TCP] 172.19.0.1:55326(org.telegram.messenger) --> 91.108.56.163:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:26.571 Debug: Auth success from 127.0.0.1:48212 ->
10:56:26.572 Debug: [Rule] use default rules
10:56:29.206 Debug: [PKG] 172.19.0.1:42966 --> 91.108.56.137:443 by 10373[org.telegram.messenger]
10:56:29.206 Debug: [PKG] 172.19.0.1:57620 --> 91.108.56.148:443 by 10373[org.telegram.messenger]
10:56:29.206 Info: [TCP] 172.19.0.1:42966(org.telegram.messenger) --> 91.108.56.137:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:29.206 Info: [TCP] 172.19.0.1:57620(org.telegram.messenger) --> 91.108.56.148:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:29.514 Debug: [Rule] use default rules
10:56:29.516 Debug: [PKG] 172.19.0.1:55336 --> 91.108.56.163:5222 by 10373[org.telegram.messenger]
10:56:29.517 Info: [TCP] 172.19.0.1:55336(org.telegram.messenger) --> 91.108.56.163:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:33.530 Debug: [PKG] 172.19.0.1:34306 --> 91.108.56.163:443 by 10373[org.telegram.messenger]
10:56:33.531 Info: [TCP] 172.19.0.1:34306(org.telegram.messenger) --> 91.108.56.163:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:41.546 Debug: [PKG] 172.19.0.1:43094 --> 91.108.56.163:443 by 10373[org.telegram.messenger]
10:56:41.546 Info: [TCP] 172.19.0.1:43094(org.telegram.messenger) --> 91.108.56.163:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:49.583 Debug: [PKG] 172.19.0.1:48648 --> 91.108.56.163:5222 by 10373[org.telegram.messenger]
10:56:49.583 Info: [TCP] 172.19.0.1:48648(org.telegram.messenger) --> 91.108.56.163:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:51.226 Debug: [PKG] 172.19.0.1:56196 --> 95.161.76.101:443 by 10373[org.telegram.messenger]
10:56:51.227 Info: [TCP] 172.19.0.1:56196(org.telegram.messenger) --> 95.161.76.101:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:54.380 Debug: use specified fingerprint:Chrome
10:56:54.498 Info: [TCP] [fdfe:dcba:9876::1]:57266(org.telegram.messenger) --> [2001:b28:f23f:f005::a]:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:58.246 Debug: [PKG] 172.19.0.1:57678 --> 91.108.56.163:443 by 10373[org.telegram.messenger]
10:56:58.247 Info: [TCP] 172.19.0.1:57678(org.telegram.messenger) --> 91.108.56.163:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:56:59.248 Debug: [Rule] use default rules
10:56:59.252 Debug: [PKG] 172.19.0.1:56212 --> 95.161.76.101:443 by 10373[org.telegram.messenger]
10:56:59.253 Info: [TCP] 172.19.0.1:56212(org.telegram.messenger) --> 95.161.76.101:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:03.242 Debug: [Rule] use default rules
10:57:03.243 Debug: [Rule] use default rules
10:57:03.245 Debug: [PKG] 172.19.0.1:53300 --> 91.108.56.148:5222 by 10373[org.telegram.messenger]
10:57:03.246 Debug: [PKG] 172.19.0.1:50148 --> 91.108.56.137:443 by 10373[org.telegram.messenger]
10:57:03.246 Info: [TCP] 172.19.0.1:50148(org.telegram.messenger) --> 91.108.56.137:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:03.246 Info: [TCP] 172.19.0.1:53300(org.telegram.messenger) --> 91.108.56.148:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:06.262 Debug: [Rule] use default rules
10:57:06.264 Debug: [PKG] [fdfe:dcba:9876::1]:46364 --> [2001:b28:f23f:f005::a]:443 by 10373[org.telegram.messenger]
10:57:06.267 Info: [TCP] [fdfe:dcba:9876::1]:46364(org.telegram.messenger) --> [2001:b28:f23f:f005::a]:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:07.271 Debug: [Rule] use default rules
10:57:07.274 Debug: [PKG] 172.19.0.1:51784 --> 95.161.76.101:443 by 10373[org.telegram.messenger]
10:57:07.275 Info: [TCP] 172.19.0.1:51784(org.telegram.messenger) --> 95.161.76.101:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:14.294 Debug: [PKG] 172.19.0.1:42256 --> 91.108.56.163:5222 by 10373[org.telegram.messenger]
10:57:14.298 Info: [TCP] 172.19.0.1:42256(org.telegram.messenger) --> 91.108.56.163:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:14.468 Debug: [Rule] use default rules
10:57:14.471 Debug: [PKG] [fdfe:dcba:9876::1]:40316 --> [2001:b28:f23f:f005::a]:5222 by 10373[org.telegram.messenger]
10:57:14.471 Info: [TCP] [fdfe:dcba:9876::1]:40316(org.telegram.messenger) --> [2001:b28:f23f:f005::a]:5222 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:27.603 Debug: [Rule] use default rules
10:57:27.605 Debug: [PKG] 172.19.0.1:45884 --> 91.108.56.163:443 by 10373[org.telegram.messenger]
10:57:27.608 Info: [TCP] 172.19.0.1:45884(org.telegram.messenger) --> 91.108.56.163:443 match GeoIP(telegram) using Telegram[[AnyTls]]
10:57:28.645 Debug: [Rule] use default rules
10:57:28.650 Debug: [PKG] 172.19.0.1:39690 --> 95.161.76.101:443 by 10373[org.telegram.messenger]
10:57:28.651 Info: [TCP] 172.19.0.1:39690(org.telegram.messenger) --> 95.161.76.101:443 match GeoIP(telegram) using Telegram[[AnyTls]]