Cuty的碎片空间
28 subscribers
3 photos
8 files
10 links
会发些奇怪的东西
Download Telegram
Channel created
VPS-Optimize 最近完成了一轮功能增强,重点优化了 3x-ui / Caddy / REALITY / 订阅服务 的整体部署逻辑。

这次新增的核心能力是:443 单入口分流方案。

新的架构下:

公网 443 仅由 Nginx stream 监听
按 SNI 分流到面板、展示站或 REALITY
Caddy 仅负责本地 TLS 终止与反代
3x-ui 面板、订阅服务、REALITY inbound 默认全部只监听本地
不再依赖 Xray fallback 分流网站
面板与订阅外链会统一生成标准 https://域名/ 和 https://域名/sub/
这样做的优势很明确:

结构更清晰:面板、节点、展示站的入口职责彻底分离
安全性更高:公网暴露面更小,面板和本地服务不再直接裸露
兼容性更好:避免 Caddy、3x-ui、REALITY 互相抢占 443
排障更方便:访问链路固定,问题定位更直接
除 443 单入口外,这次也同步补充了几项实用功能:

SublinkPro Docker 一键部署,支持自定义端口
新增 233boy Sing-box / 233boy Xray 一键脚本入口
dog.sh 端口流量统计支持区分:
用户单向实际用量
端口双向统计
VPS 商家整机流量口径
对于需要同时维护 3x-ui、REALITY、反代、订阅转换 的场景,这套 443 单入口分流方案会更稳,也更适合长期维护。
整理了一套适配 Clash Verge Rev / Mihomo 的分流规则,分为完整版和轻量版。完整版适合喜欢细分策略组、单独控制常见服务流量的人;轻量版更适合日常稳定使用,分组更少、更省心。整体重点放在 DNS 防泄露、常用场景分流稳定,以及节点地区识别优化上,尽量做到规则清晰、行为可预期、后续也方便自己维护。
DNS Switcher Pro,一个轻量级 Windows DNS 切换工具。支持预设、自定义、中英双语、网卡排序和命令查看。
Cuty的碎片空间
https://github.com/Chunlion/VPS-Optimize
新增TCP Peek + Splice 分流引擎

- 保留 nginx_stream 作为默认稳定 443 单入口引擎
- 新增 experimental tcp_peek 引擎设计
- 引入 vpso-mux 作为独立 TCP SNI 分流器
- 使用 MSG_PEEK 读取 TLS ClientHello,避免消费首包
- 按 SNI 分流到 Caddy 或 Xray 本地后端
- 支持按路由配置 IPv4/IPv6/CIDR 白名单
- 支持 splice 零拷贝转发,并在失败时回退到普通 copy
- 使用 8444 作为 vpso-mux 测试入口端口
- 保留 8443 作为 Caddy 本地 HTTPS 后端端口
- 保留 1443 作为 Xray/REALITY 本地后端端口
- 增加 dry-run、测试模式、端口占用检查和回滚设计
- 补充 openssl、curl --connect-to 和 REALITY 客户端测试流程
对系统性能的占用会更小,暂未实际测试,可能会有未知BUG
Cuty的碎片空间 pinned «新增TCP Peek + Splice 分流引擎 - 保留 nginx_stream 作为默认稳定 443 单入口引擎 - 新增 experimental tcp_peek 引擎设计 - 引入 vpso-mux 作为独立 TCP SNI 分流器 - 使用 MSG_PEEK 读取 TLS ClientHello,避免消费首包 - 按 SNI 分流到 Caddy 或 Xray 本地后端 - 支持按路由配置 IPv4/IPv6/CIDR 白名单 - 支持 splice 零拷贝转发,并在失败时回退到普通 copy…»
Cuty的碎片空间
https://github.com/Chunlion/VPS-Optimize
VPS-Optimize 的 443 端口复用已经做成完整单入口方案了。
公网只开放 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 入站仍按本地监听填写。第一次使用时先运行 主菜单 [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 不会也不能靠它判断路径。
https://github.com/Chunlion/Clash_Rule-Set
新增
新增 家宽节点 策略组,同步到完整版与 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
1
Cuty的碎片空间
https://github.com/Chunlion/Clash_Rule-Set 新增 新增 家宽节点 策略组,同步到完整版与 Lite 版的 YAML / JS。 AI Services 优先选择 家宽节点,其次再走美区相关节点。 家宽节点 图标使用 home icon。 README 新增完整版与 Lite 版节点分组对比表,并补充 emoji 标识。 调整 家宽节点 放在欧洲分组下面、其他分组上面。 家宽节点可同时存在于对应地区分组和家宽分组。 家宽匹配仅按家宽关键词过滤,不再把美国节点作为家宽组回落。…
新增 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
猫猫TProxy_Go.js
442.4 KB
Go 语言重构版,兼容性更好
BUG 反馈@cuty_contact_bot
项目地址:欢迎 Star