对Vless XTLS-VISION Splice的TLS Finish包的特征消除的想法
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 38.1k
- Forks
- 4.6k
- Avg merge
- 19d 15h
- Merged PRs (30d)
- 1
Description
操作系统
Linux
系统版本
debian 13
安装类型
sing-box 原始命令行程序
如果您使用图形客户端程序,请提供该程序版本。
No response
版本
描述
在使用vless XTLS-VISION流控中,如果内层流量是TLS 1.3,则会触发Splice。在内层TLS需要结束时,会发出内容长度为19字节的TLS FIN包(开头为1703030013的内容大小的TCP包),随后内层会发出TCP FIN,这个TCP FIN会触发Vless隧道的Client TLS FIN包,然后sing-box服务端会返回vless隧道的Server TLS FIN,随后结束TCP链接。
这个流程会有非常明显的特征,就是在一个TLS Stream内,最后3~4个包,[C->S,C->S,S->C],或者[S>C,C>S,C>S,S>C] 全都是19字节的TLS Application data包的话,基本大概率就是Vless XTLS了。
建议sing-box在VLESS XTRLS流控中,splice=1的情况下,内层接收到TCP FIN之后,sing-box不再优雅关闭外层Vless TLS,而是直接发出TCP FIN关闭隧道。如果vless tls在收到对端tcp FIN后,再发出TLS FIN。避免造成多余的TLS FIN包特征。
重现方式
抓包
日志
支持我们
- 我已经 赞助
完整性要求
- 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
- 我保证提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
- 我保证提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器、TUN、图形界面客户端或者其他闭源软件。
- 我保证提供了完整的配置文件与日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the VLESS XTLS-VISION splice handling in the sing-box command-line implementation and reproduce the reported packet sequence with a capture on Debian 13. Compare the inner TCP FIN and outer TLS shutdown behavior; done means the proposed splice=1 shutdown no longer produces the described extra TLS FIN signature while the tunnel still closes correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100