Reality协议代理TLSv1.3网站的连接不释放
操作系统
Linux
系统版本
Debian12.7
安装类型
sing-box 原始命令行程序
如果您使用图形客户端程序,请提供该程序版本。
METACUBE 1.168.0
版本
sing-box version 1.11.0-alpha.1-4b606bec
Environment: go1.23.2 linux/amd64
Tags: with_gvisor,with_dhcp,with_wireguard,with_reality_server,with_clash_api,with_quic,with_utls,with_ech
Revision: 4b606bece51e3bebfface19e5d20cf114fbe10ba
CGO: enabled
描述
使用 sing-box 搭建服务端的前提下: 使用 sing-box 客户端 + TLSv1.3 连接不释放。 使用 sing-box 客户端 + TLSv1.2 正常释放。 使用 sing-box 客户端 + 非TLS连接 正常释放。 使用 mihomo 客户端 + TLSv1.3/TLSv1.2 连接均正常释放。 sing-box 客户端是软路由(使用 tproxy 或 socks5 方式代理均可触发连接不释放的BUG) mihomo 客户端是 clash meta for android
重现方式
测试使用命令(tproxy 和 socks5 代理):
TLSv1.3:
curl --tls-max 1.3 https://rr2---sn-aigl6nzs.googlevideo.com
curl --tls-max 1.2 --socks5 10.1.1.1:9900 https://rr2---sn-aigl6nzs.googlevideo.com
TLSv1.2:
curl --tls-max 1.2 https://rr2---sn-aigl6nzs.googlevideo.com
curl --tls-max 1.2 --socks5 10.1.1.1:9900 https://rr2---sn-aigl6nzs.googlevideo.com
非TLS连接:
curl http://rr2---sn-aigl6nzs.googlevideo.com
curl --socks5 10.1.1.1:9900 http://rr2---sn-aigl6nzs.googlevideo.com
sing-box 关键配置(域名匹配配置略): 客户端
{
"inbounds": [
{
"tag": "in-tproxy",
"type": "tproxy",
"listen": "::",
"listen_port": 9999,
"sniff": false,
"sniff_override_destination": false
},
{
"tag": "in-socks",
"type": "socks",
"listen": "::",
"listen_port": 9900,
"tcp_fast_open": true,
"tcp_multi_path": true,
"sniff": false,
"sniff_override_destination": false
}
],
"outbounds": [
{
"tag": "out-xtls",
"tcp_fast_open": false,
"tcp_multi_path": false,
"type": "vless",
"server": "出口IP",
"server_port": 443,
"uuid": "FKOCze17B6wHgJn457vPcg==",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"server_name": "s0.awsstatic.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "JbVE9k28qoWlUq1VnGk_-0AOrXz5TKkpCQHwW9Aj5Bs",
"short_id": ""
}
},
"packet_encoding": "xudp"
}
]
}
服务端
{
"inbounds": [
{
"tag": "in-xtls",
"listen": "::",
"listen_port": 443,
"sniff": false,
"type": "vless",
"users": [
{ "name": "", "uuid": "FKOCze17B6wHgJn457vPcg==", "flow": "xtls-rprx-vision" }
],
"tls": {
"enabled": true,
"server_name": "s0.awsstatic.com",
"reality": {
"enabled": true,
"handshake": {
"server": "s0.awsstatic.com",
"server_port": 443
},
"private_key": "cHe3m7I7oZXUZjuhwgu7B0nfD7H9UnVSuu3R0K7XH18",
"short_id": [""]
}
}
}
],
"outbounds": [
{
"tag": "out-direct",
"type": "direct"
}
]
}
日志
curl --tls-max 1.3 https://rr2---sn-aigl6nzs.googlevideo.com
sing-box为客户端, sing-box为服务端, TLSv1.3建立连接后不释放的日志:
INFO[0158] [1201354724 0ms] inbound/vless[in-xtls]: inbound connection from 来源IP:53486
INFO[0158] [713786906 0ms] inbound/vless[in-xtls]: [0] inbound connection to rr2---sn-aigl6nzs.googlevideo.com:443
DEBUG[0158] [713786906 1ms] router: match[3] rule_set=geo-gfw => out-proxy
INFO[0158] [713786906 1ms] outbound/direct[out-direct]: outbound connection to rr2---sn-aigl6nzs.googlevideo.com:443
TRACE[0159] inbound/vless[in-xtls]: Xtls Unpadding new block 21 517 padding 717 0
TRACE[0159] inbound/vless[in-xtls]: XtlsFilterTls found tls client hello! 517
TRACE[0159] inbound/vless[in-xtls]: XtlsFilterTls found tls 1.3! 4639 4866 true
TRACE[0159] inbound/vless[in-xtls]: XtlsPadding 4639 191 0
TRACE[0159] inbound/vless[in-xtls]: Xtls Unpadding new block 5 199 padding 1115 0
TRACE[0159] inbound/vless[in-xtls]: XtlsPadding 2223 14 2
TRACE[0159] inbound/vless[in-xtls]: XtlsWrite writeV 0 0 0
TRACE[0159] inbound/vless[in-xtls]: Xtls Unpadding new block 5 24 padding 930 2
TRACE[0159] inbound/vless[in-xtls]: XtlsRead readV
curl --tls-max 1.3 https://rr2---sn-aigl6nzs.googlevideo.com
mihomo为客户端, sing-box为服务端, TLSv1.3建立连接后正常释放的日志:
INFO[1165] [2787219527 0ms] inbound/vless[in-xtls]: inbound connection from 来源IP:49211
INFO[1165] [2059792308 6ms] inbound/vless[in-xtls]: [0] inbound connection to rr2---sn-aigl6nzs.googlevideo.com:443
DEBUG[1165] [2059792308 7ms] router: match[3] rule_set=geo-gfw => out-proxy
INFO[1165] [2059792308 7ms] outbound/direct[out-direct]: outbound connection to rr2---sn-aigl6nzs.googlevideo.com:443
TRACE[1165] inbound/vless[in-xtls]: Xtls Unpadding new block 21 517 padding 832 0
TRACE[1165] inbound/vless[in-xtls]: XtlsFilterTls found tls client hello! 517
TRACE[1166] inbound/vless[in-xtls]: XtlsFilterTls found tls 1.3! 4639 4866 true
TRACE[1166] inbound/vless[in-xtls]: XtlsPadding 4639 131 0
TRACE[1166] inbound/vless[in-xtls]: Xtls Unpadding new block 5 80 padding 896 2
TRACE[1166] inbound/vless[in-xtls]: XtlsRead readV
TRACE[1166] inbound/vless[in-xtls]: XtlsPadding 2223 235 2
TRACE[1166] inbound/vless[in-xtls]: XtlsWrite writeV 0 0 0
面板强制关闭没有释放的TLSv1.3的连接的日志:
TRACE[0213] inbound/vless[in-xtls]: Xtls Unpadding new block 5 471 padding 236 1
DEBUG[0213] [1201354724 54.91s] inbound/vless[in-xtls]: connection closed: process connection from 来源IP:53486: upload: read tcp 出口IP:443->来源IP:53486: use of closed network connection
TRACE[0213] inbound/vless[in-xtls]: XtlsFilterTls stop filtering 110
TRACE[0213] inbound/vless[in-xtls]: XtlsPadding 110 223 1
curl --tls-max 1.2 https://rr2---sn-aigl6nzs.googlevideo.com
sing-box为客户端, sing-box为服务端, TLSv1.2建立连接后正常释放的日志:
INFO[0513] [4109789228 0ms] inbound/vless[in-xtls]: inbound connection from 来源IP:42780
INFO[0513] [1861343092 0ms] inbound/vless[in-xtls]: [0] inbound connection to rr2---sn-aigl6nzs.googlevideo.com:443
DEBUG[0513] [1861343092 0ms] router: match[3] rule_set=geo-gfw => out-proxy
INFO[0513] [1861343092 0ms] outbound/direct[out-direct]: outbound connection to rr2---sn-aigl6nzs.googlevideo.com:443
TRACE[0513] inbound/vless[in-xtls]: Xtls Unpadding new block 21 250 padding 910 0
TRACE[0513] inbound/vless[in-xtls]: XtlsFilterTls found tls client hello! 250
TRACE[0513] inbound/vless[in-xtls]: XtlsFilterTls found tls 1.2! 4571
TRACE[0513] inbound/vless[in-xtls]: XtlsPadding 4571 163 0
TRACE[0513] inbound/vless[in-xtls]: Xtls Unpadding new block 5 85 padding 1302 0
TRACE[0514] inbound/vless[in-xtls]: XtlsPadding 43 1011 0
TRACE[0514] inbound/vless[in-xtls]: Xtls Unpadding new block 5 118 padding 822 1
TRACE[0514] inbound/vless[in-xtls]: XtlsPadding 1795 250 1
curl http://rr2---sn-aigl6nzs.googlevideo.com
sing-box为客户端, sing-box为服务端, 非TLS连接建立后正常释放的日志:
INFO[0321] [2710045854 0ms] inbound/vless[in-xtls]: inbound connection from 来源IP:54784
INFO[0321] [1722893644 0ms] inbound/vless[in-xtls]: [0] inbound connection to rr2---sn-aigl6nzs.googlevideo.com:80
DEBUG[0321] [1722893644 0ms] router: match[3] rule_set=geo-gfw => out-proxy
INFO[0321] [1722893644 0ms] outbound/direct[out-direct]: outbound connection to rr2---sn-aigl6nzs.googlevideo.com:80
TRACE[0322] inbound/vless[in-xtls]: Xtls Unpadding new block 21 97 padding 155 0
TRACE[0322] inbound/vless[in-xtls]: XtlsPadding 1753 251 0
支持我们
- [ ] 我已经 赞助
完整性要求
- [X] 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
- [X] 我保证提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
- [X] 我保证提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器、TUN、图形界面客户端或者其他闭源软件。
- [X] 我保证提供了完整的配置文件与日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
sing-box搭建reality节点无法在V2rayN上Xray内核上使用,必须切换vless协议内核为sing-box才可以正常使用大家有遇到这个问题吗?但是反过来是可以的。
sing-box搭建reality节点无法在V2rayN上Xray内核上使用,必须切换vless协议内核为sing-box才可以正常使用大家有遇到这个问题吗?但是反过来是可以的。
可能是因为 sing-box 的 reality 库一年多没更新了。
sing-box搭建reality节点无法在V2rayN上Xray内核上使用,必须切换vless协议内核为sing-box才可以正常使用大家有遇到这个问题吗?但是反过来是可以的。
可能是因为 sing-box 的 reality 库一年多没更新了。
原来还会有这种问题!