Shaper Next 是一个面向复杂网络环境的代理客户端。它内置可编排的流量拦截引擎与安全出站链路,用于在可控前提下提升连接可用性与抗干扰能力。
Shaper Next 支持用户自行部署中继端:推荐使用Cloudflare Worker (Serverless) 或 Cloudflare Tunnel + 私有 VPS。 Todo:也可以直连VPS(可自行选择域前置) 客户端将请求修改urlpath后转发到你自有的中继域名,再由中继端发起到目标站点的访问。
- Server 模式: 利用 Cloudflare 边缘与 ECH,把客户端到中继端的外层链路表现为标准 HTTPS 访问;目标站点由中继端代为访问。
- 双后端反代部署: 同时支持 Worker 与 CF Tunnel + VPS,两种后端使用同一 URL 负载协议,客户端仅需切换
server域名即可迁移。 - 完善的全局 TUN 支持: 一键接管操作系统的所有 TCP/UDP 流量,自动兜底注入默认路由,并支持按需绕过内网。
- 透明代理与 MITM 测试模式: 内置自建 CA 证书热签发模块,支持本地截获流量并在应用层改写路由规则,极大地方便了开发者在模拟环境下的流量探视与测试。
- 本地连接池与稳态传输: 通过持久化
http.Client+BufferedPipe,减少重复握手并避免 L7 拦截阶段的管道死锁。
我们撰写了详尽的架构说明,欢迎阅读项目内的核心文档: 《Shaper Next — 代理穿透与反审查基础原理及技术架构分析》(tech.md)
Server 模式不是传统 SOCKS/VPN 二进制隧道协议。客户端到中继端采用标准 HTTPS 请求(由本地 L7 解析后重写到 /{auth_secret}/{target_host:port}/{path}),再由 Worker 或 Tunnel+VPS 反向代理到目标站点。
- 在启用 ECH 时,外层明文 SNI 不暴露真实中继域名。
- 启用域前置,可绕过部分地区的Sni白名单。
- 对中继端(Worker/VPS)而言,请求在中继处被处理,因此中继运营方可见目标地址与明文 HTTP 元数据;应将中继视为受信边界并妥善管理
AUTH_SECRET。 - Todo:下一个特性httpMix将完成明文http的轻量化混淆和服务端重组,用于解决CDN的潜在安全与隐私问题。
为了让 Server 模式 工作,需要一个部署在海外的服务端。项目源码中提供了无缝对接的开箱即用方案。
- 注册并登录 Cloudflare Dashboard。
- 创建一个新的 Worker 服务。
- 将本项目下
server/worker.js文件的全部内容复制并粘贴到 Worker 的在线编辑器中。 - 务必在 Worker 的
Settings -> Variables中,添加一个名为AUTH_SECRET的明文环境变量,值设定为您自定义的复杂密码(同时请在 Shaper Next 客户端的出站配置中填入相同的 Token)。 - 部署并绑定您自己的(或自动分配的)
.workers.dev域名。在客户端填入此域名即可连接。 - 流量对于Cloudflare而言是明文,不推荐。
- 准备一台境外的 VPS,并在上面安装运行Server端。
- 在该服务器上安装并运行
cloudflared,将其配置为代理本地的后端服务,并绑定至 Cloudflare DNS 上的一条子域名(例如tunnel.example.com)。这一步是可选的,如完全不信任CDN,也可直连VPS。 - 在 Shaper Next 中将 Server 域名填写为该子域名并启动代理。
安装脚本已放在本仓库 server/install.sh。
该脚本会直接下载预编译 sni-server 二进制(不在服务器本地编译),并注册 systemd 服务。
在 Debian/Ubuntu VPS 上可直接执行:
curl -fsSL https://raw.githubusercontent.com/coolapijust/Shaper-Next/main/server/install.sh -o /tmp/sni-server-install.sh && sudo bash /tmp/sni-server-install.sh二进制与源码位置:
- 二进制:
server/sni-server-linux-amd64、server/sni-server-linux-arm64 - 源码:
server/src/main.go、server/src/proxy.go、server/src/go.mod
默认下载地址就是本仓库 server/ 目录里的二进制文件;如需自定义产物地址:
SNI_SERVER_URL="https://your-domain/path/to/sni-server-linux-amd64" sudo bash /tmp/sni-server-install.sh脚本支持子命令,可直接用于更新和管理:
# 更新二进制并自动重启服务(保留现有配置)
sudo bash /tmp/sni-server-install.sh update
# 常用管理
sudo bash /tmp/sni-server-install.sh status
sudo bash /tmp/sni-server-install.sh logs
sudo bash /tmp/sni-server-install.sh restart- Node.js 及 包管理器 (推荐
pnpm):npm i -g pnpm - Go 语言环境 (推荐 1.24+): 官方下载
- Wails CLI 框架构建工具:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# 1. 前端构建
cd frontend
pnpm install --frozen-lockfile
pnpm build
cd ..
# 2. 整体跨平台编译 (将构建可执行客户端至 build/bin 目录)
wails build