Cuty的碎片空间
https://github.com/Chunlion/VPS-Optimize
VPS-Optimize 的 443 端口复用已经做成完整单入口方案了。
公网只开放
也就是说,不再让 3x-ui、Caddy、订阅工具、网站、REALITY 一起抢公网 443。
当前支持三种入口模式:
Nginx Stream:默认稳定模式,基于 SNI 四层分流
TCP Peek + Splice:进阶模式,自研
Xray Fallback:特殊场景使用,只适合面板中只有一个443端口入站,由 Xray 接管公网 443 后 fallback 到 Caddy
脚本还集成了:
443 链路体检
网络访问测试
Caddy / 证书维护
域名 IP 白名单
网站/反代域名管理
备份与回滚
更新 sha256 校验
公网只开放
443,脚本按 SNI 自动分流:panel.example.com -> Caddy -> 3x-ui 面板
sub.example.com -> Caddy -> 订阅服务
site.example.com -> Caddy -> 网站/反代
REALITY SNI -> Xray / 3x-ui REALITY
未知 SNI -> 默认 REALITY 后端
也就是说,不再让 3x-ui、Caddy、订阅工具、网站、REALITY 一起抢公网 443。
当前支持三种入口模式:
Nginx Stream:默认稳定模式,基于 SNI 四层分流
TCP Peek + Splice:进阶模式,自研
vpso-mux,读取 ClientHello SNI,不消费首包,优先 splice 零拷贝转发,性能更好,对服务器负担更小Xray Fallback:特殊场景使用,只适合面板中只有一个443端口入站,由 Xray 接管公网 443 后 fallback 到 Caddy
脚本还集成了:
443 链路体检
网络访问测试
Caddy / 证书维护
域名 IP 白名单
网站/反代域名管理
备份与回滚
更新 sha256 校验
❤1
TCP Peek + Splice / vpso-mux 实现原理
TCP Peek + Splice / vpso-mux 和 Nginx Stream 使用同一套 443 单入口配置。Web 域名、证书、Web 反代引擎后端、Web 白名单和 Xray SNI 分流记录都不需要另起一套;3x-ui 面板、订阅和 Xray 入站仍按本地监听填写。第一次使用时先运行
TCP Peek 的连接生命周期
一次客户端连接进入
这里最关键的是
所以 TCP Peek 不是 TLS 终止,也不是中间人解密:
它不持有、不选择、不签发证书。
它不读取 HTTP 路径、Header、WebSocket 内容或 TLS 加密后的应用层数据。
证书和 HTTP 反代仍由当前 Web 反代引擎负责;Xray/REALITY 节点流量仍由 Xray/3x-ui 本地入站负责。
它只依赖 TLS 握手明文阶段里的 SNI 来做四层分流。
ClientHello 里到底看什么
TLS 连接开始时,客户端会先发送 ClientHello。ClientHello 仍是明文结构,其中通常包含
实现上会先 peek 约 4 KiB 数据。如果 ClientHello 没收完整,会继续扩大 peek 缓冲,最多到 16 KiB,并受
这也是为什么本方案适合 HTTPS/TLS/SNI 流量,不适合按 HTTP path 或明文协议内容分流。到了 TLS 握手之后,应用层内容已经加密,
TCP Peek + Splice / vpso-mux 和 Nginx Stream 使用同一套 443 单入口配置。Web 域名、证书、Web 反代引擎后端、Web 白名单和 Xray SNI 分流记录都不需要另起一套;3x-ui 面板、订阅和 Xray 入站仍按本地监听填写。第一次使用时先运行
主菜单 [19 443 单入口管理中心] -> [16] 查看 TCP Peek + Splice 状态 / 8444 预检,确认 vpso-mux 能在 8444 启动并转发;再运行 [17] TCP Peek 分流规则校验。只有用户随后执行 [5] 切换到 TCP Peek + Splice 模式,公网 443 才会从 Nginx Stream 切到 vpso-mux。vpso-mux 使用 MSG_PEEK 查看 TLS ClientHello 中的 SNI,不消费首包;后端收到的 ClientHello 仍与客户端原始数据一致。转发优先使用 splice,失败或不可用时回退普通 copy。TCP Peek 的连接生命周期
一次客户端连接进入
vpso-mux 后,大致按下面的顺序处理:客户端 TCP 连接
-> vpso-mux accept
-> recv(MSG_PEEK) 只查看接收缓冲区里的 ClientHello
-> 从 ClientHello 扩展里解析 SNI
-> 按 SNI 和源 IP 白名单选择 backend
-> dial 后端本地端口
-> 双向转发原始 TCP 字节流
这里最关键的是
MSG_PEEK。普通 recv 会把数据从 socket 接收缓冲区取走,后续转发时需要把已经读走的首包重新写给后端;MSG_PEEK 只是“看一眼”,不会移动读取位置。因此 vpso-mux 解析完 SNI 后,客户端发来的 TLS ClientHello 仍然留在原 socket 缓冲区里。后端连接建立后,第一批被转发过去的字节仍是客户端原始 ClientHello。所以 TCP Peek 不是 TLS 终止,也不是中间人解密:
它不持有、不选择、不签发证书。
它不读取 HTTP 路径、Header、WebSocket 内容或 TLS 加密后的应用层数据。
证书和 HTTP 反代仍由当前 Web 反代引擎负责;Xray/REALITY 节点流量仍由 Xray/3x-ui 本地入站负责。
它只依赖 TLS 握手明文阶段里的 SNI 来做四层分流。
ClientHello 里到底看什么
TLS 连接开始时,客户端会先发送 ClientHello。ClientHello 仍是明文结构,其中通常包含
server_name 扩展,也就是浏览器或代理客户端想访问的域名。vpso-mux 只解析这部分字段:TLS record
-> record type = handshake
-> handshake type = ClientHello
-> extensions
-> server_name extension
-> hostname SNI
实现上会先 peek 约 4 KiB 数据。如果 ClientHello 没收完整,会继续扩大 peek 缓冲,最多到 16 KiB,并受
timeouts.peek 控制,脚本默认写入 3s。解析出的 SNI 会统一转成小写,并去掉末尾的点,例如 Panel.Example.COM. 会变成 panel.example.com。如果数据不是 TLS ClientHello、ClientHello 不完整、没有 SNI,或者协议本身不带 SNI,就不会命中特定域名规则,后续按默认后端处理。这也是为什么本方案适合 HTTPS/TLS/SNI 流量,不适合按 HTTP path 或明文协议内容分流。到了 TLS 握手之后,应用层内容已经加密,
vpso-mux 不会也不能靠它判断路径。GitHub
GitHub - Chunlion/Clash_Rule-Set: 基于原作者规则进行修改,添加了作者所需要的相关规则,更加简单易用
基于原作者规则进行修改,添加了作者所需要的相关规则,更加简单易用. Contribute to Chunlion/Clash_Rule-Set development by creating an account on GitHub.
https://github.com/Chunlion/Clash_Rule-Set
新增
新增
README 新增完整版与 Lite 版节点分组对比表,并补充 emoji 标识。
调整
家宽节点可同时存在于对应地区分组和家宽分组。
家宽匹配仅按家宽关键词过滤,不再把美国节点作为家宽组回落。
README 中服务策略组、区域策略组说明已同步当前配置。
新增
新增
家宽节点 策略组,同步到完整版与 Lite 版的 YAML / JS。AI Services 优先选择 家宽节点,其次再走美区相关节点。家宽节点 图标使用 home icon。README 新增完整版与 Lite 版节点分组对比表,并补充 emoji 标识。
调整
家宽节点 放在欧洲分组下面、其他分组上面。家宽节点可同时存在于对应地区分组和家宽分组。
家宽匹配仅按家宽关键词过滤,不再把美国节点作为家宽组回落。
README 中服务策略组、区域策略组说明已同步当前配置。
TProxy_F50.js
345 KB
7.14更新:这一版本修了一下上传模板会出现Failed to fetch的问题,问题最少的版本👍
7.18更新:解决了更新订阅耗时很长以及控制API响应慢的问题,真正的问题最少的版本
BUG反馈:@cuty_contact_bot
7.18更新:解决了更新订阅耗时很长以及控制API响应慢的问题,
BUG反馈:
❤1
Cuty的碎片空间
https://github.com/Chunlion/Clash_Rule-Set 新增 新增 家宽节点 策略组,同步到完整版与 Lite 版的 YAML / JS。 AI Services 优先选择 家宽节点,其次再走美区相关节点。 家宽节点 图标使用 home icon。 README 新增完整版与 Lite 版节点分组对比表,并补充 emoji 标识。 调整 家宽节点 放在欧洲分组下面、其他分组上面。 家宽节点可同时存在于对应地区分组和家宽分组。 家宽匹配仅按家宽关键词过滤,不再把美国节点作为家宽组回落。…
新增
Lite 版新增
Lite 版已补齐完整分流组,如有需要可以自行修改Yaml文件启用。
注意
原
Crypto 加密货币分流组,使用独立图标与加密货币规则集。Lite 版新增
PayPal 金融分流组。Lite 版已补齐完整分流组,如有需要可以自行修改Yaml文件启用。
Wise 分流组调整为 PayPal 金融分流。PayPal 现在覆盖 PayPal、Wise 及其他金融平台规则。注意
原
Wise 策略组已移除;升级后请在客户端中重新选择 PayPal 分组的节点。Crypto 可单独选择节点,不影响其他金融平台流量。猫猫TProxy.js
410.1 KB
7.21优化:精简策略设置,规则统一由配置模板管理;重整网络规则、设备直连及故障修复分类;保留旧配置兼容,继续支持 iptables/ip6tables 的 legacy/nft 后端。
7.22更新:精简约 12.8% 冗余代码,修复潜在隐患并全面优化策略与订阅性能。
7.27更新:修复误判核心带来的 Tproxy 规则黑洞问题。
BUG反馈:@cuty_contact_bot
项目地址:欢迎 Star
7.22更新:精简约 12.8% 冗余代码,修复潜在隐患并全面优化策略与订阅性能。
7.27更新:修复误判核心带来的 Tproxy 规则黑洞问题。
BUG反馈:
项目地址:欢迎 Star
猫猫TProxy.js
500.7 KB
📦 猫猫TProxy 更新
主要更新:
• Go 辅助内核正常时优先使用 Go 加速
• Go 不可用时自动切回 Shell,不影响基础代理
• Go helper 更新到本地内置 0.3.2,体积降至约 2.56 MB
• 初次安装优先使用本地包
• 更新优先从 Gitee 下载,失败再用本地包
• 只安装比设备当前版本更高的 helper
• 不绑定固定版本、文件大小或 SHA256
• 安装后自动显示 Go helper 版本并点亮按钮
• helper 异常时显示“Shell模式”
• Web 面板密码增加显示/隐藏按钮
• 取消 yq 固定指纹限制
• 优化冷启动恢复、启动快照和故障转移
8.14更新:修复面板更新不加载问题
BUG 反馈:@cuty_contact_bot
项目地址:欢迎 Star
主要更新:
• Go 辅助内核正常时优先使用 Go 加速
• Go 不可用时自动切回 Shell,不影响基础代理
• Go helper 更新到本地内置 0.3.2,体积降至约 2.56 MB
• 初次安装优先使用本地包
• 更新优先从 Gitee 下载,失败再用本地包
• 只安装比设备当前版本更高的 helper
• 不绑定固定版本、文件大小或 SHA256
• 安装后自动显示 Go helper 版本并点亮按钮
• helper 异常时显示“Shell模式”
• Web 面板密码增加显示/隐藏按钮
• 取消 yq 固定指纹限制
• 优化冷启动恢复、启动快照和故障转移
8.14更新:修复面板更新不加载问题
BUG 反馈:
项目地址:欢迎 Star