完整实现 FinalMask 客户端、服务端与全量配置#44
Draft
MiChongs wants to merge 1 commit into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景与目标
本 PR 完整实现 Xray-core 26.7.11 的 FinalMask 传输层,并将配置解析、客户端、服务端、TCP/UDP/QUIC 数据面、套接字策略、入站监听与启动路径一次性接通。实现以 Xray-core v26.7.11 的固定提交
50231eaff98ccc31b5cbd247a721c16e97fe5ec1为行为基线,不使用空壳、透传或“仅解析不执行”的降级方案。完整配置注册
新增强类型、严格未知字段校验的
streamSettings模型,注册并校验:network;sockopt:mark、tcpFastOpen、tproxy、acceptProxyProtocol、domainStrategy、dialerProxy、TCP keepalive、拥塞算法、接口、v6only、窗口/MSS/user-timeout、penetrate、MPTCP、自定义 sockopt、地址端口策略、Happy Eyeballs、可信 X-Forwarded-For 标记头;header-custom、fragment、sudoku、xmc;header-custom、mkcp-legacy、noise、salamander、sudoku、xdns、xicmp、realm;quicParams:拥塞模式、调试、BBR profile、Brutal 上下行带宽、UDP Hop、流/连接接收窗口、空闲与保活、PMTU 开关、最大入站流数;范围、枚举、平台相关 sockopt、XDNS 迁移字段、QUIC 窗口与超时、UDP Hop、FinalMask 层级组合均在配置阶段失败关闭,不把不可执行配置留到运行时。
TCP FinalMask
header-custom实现客户端、服务端与错误响应状态机,支持随机字节、范围、捕获、复用、转换表达式及严格资源上限;fragment支持普通分片、tlshello语义、长度/延迟序列与最大拆分;sudoku实现官方表生成、Go 随机序列、ASCII/熵布局、提示元组、上下行编解码与分块边界;xmc实现 Minecraft 握手、RSA 密钥流程、CFB8 加密与双向代理;UDP FinalMask
header-custom支持 prefix/standalone、逐对端服务端状态隔离、捕获/复用/表达式与边界限制;mkcp-legacy实现 original/AES-128-GCM 及 DNS、DTLS、SRTP、uTP、微信、WireGuard 等官方头形状;noise实现重置、随机噪声、数据类型与延迟;salamander实现 BLAKE2b 派生、简单模式和 Gecko 分片/重组/去重/资源回收;sudoku实现逐数据报重新起表的官方 UDP 编解码;xdns实现 DNS 查询/响应封装、全部官方记录模式、截断与错误码处理、服务端解码与响应;xicmp实现 IPv4/IPv6 ICMP、校验和、序号窗口、防重放及 DGRAM 模式;realm实现官方 URL、HTTP API、Bearer 认证、SSE、心跳/恢复、STUN、NAT 候选扩展、打洞与完整 TLS;QUIC、Brutal、UDP Hop
quinn/quinn-proto构建真实 QUIC 客户端与服务端;rsteria2提供真实 Brutal 拥塞控制器,同时支持 Reno、BBR、force-brutal 与可切换策略;套接字策略与运行时接线
dialerProxy支持后向引用并在所有节点注册完成后解析,缺失目标会明确报错;streamSettings;依赖与安全边界
rsteria2、quinn、hickory-resolver、hickory-proto、rsa、ggstd等真实协议/密码/网络依赖;Cargo.lock已完整更新。上游对齐
新增
scripts/verify-xray-finalmask-oracle.ps1和中文说明文档。脚本固定并校验 Xray-core v26.7.11 提交,拒绝错误提交或有受跟踪改动的 Oracle 工作区,再运行官方 FinalMask Go 测试与本项目定向测试。已在固定提交上运行全部官方 FinalMask 测试,结果全部通过,包括:
本项目验证
core-config:121/121;core-outbound:413/413,其中 FinalMask 定向 54/54;core-inbound:138/138;core-reality:104/104;xray-transport:5/5;wuther-core:16/16;cargo check --workspace --all-targets:通过;cargo fmt --all -- --check:通过;git diff --check:通过。分支与提交关系
本 PR 基于
codex/protocol-tuic-validation-fix。该基线是全量回归中发现并独立提交的 TUIC 注册校验修复;本分支相对该基线仅包含 1 个 FinalMask 完整实现提交,从而保持“一个实现一个提交”,不把 TUIC 修复与 FinalMask 混在同一提交中。