一个基于 Cloudflare Workers 的 Serverless Web SSH 终端:通过浏览器直接连接和管理你的服务器。
极致轻量 · 开箱即用 · 赛博朋克 UI
Tip
CloudSSH 利用 Cloudflare Workers 的 TCP Sockets 支持,在边缘节点实现 SSH 协议的解析与转发,提供低延迟的 Web 终端体验。
想象一下,随时随地打开浏览器,就能以极具科技感的赛博朋克 UI 连接你的服务器,无需安装任何 SSH 客户端。
- 零服务器成本:纯前端部署 + Cloudflare Workers,无需自建后端服务器。
- 边缘加速:得益于 Cloudflare 的全球边缘网络,随时随地享受低延迟的 SSH 连接。
- 一键部署:通过 Wrangler 工具,一句命令即可完成项目构建与部署。
- 现代化前端技术栈:React + TypeScript + Vite + Tailwind CSS,配合 xterm.js 提供丝滑的终端体验。
- 端到端加密:完整的 SSH-2.0 协议实现,包括 ECDH 密钥交换、Ed25519 签名认证以及 AES-256-GCM 数据加密。
- 安全加固体系:内置针对 IPv6 与保留地址的 SSRF 防护、API 请求频率限制(防爆破),并在本地使用 AES-GCM 算法加密存储您的服务器凭证。
- 人机验证:支持 Cloudflare Turnstile 验证,防止恶意机器人滥用。
- 隔离的会话状态:借助 Cloudflare Durable Objects 和 Hibernation API,每个终端会话都在沙盒内安全、持久地运行。
- 完整的 SSH 握手:原生 TypeScript 实现 SSH 传输层协议与用户认证协议。
- IPv4/IPv6 双栈:完整支持 IPv4 和 IPv6 地址连接,包括 IPv6 方括号格式自动处理。
- 多种认证方式:支持标准 SSH 密码认证以及基于 Ed25519 的纯文本私钥认证。
- 防范中间人攻击 (TOFU):首次连接自动提取服务器 Host Key(SHA-256 指纹)并显示,防止被恶意节点窃听。
- 全功能极客终端:基于
@xterm/xterm与@xterm/addon-webgl硬件加速渲染引擎,保证海量日志输出顺滑不卡顿。 - 个性化 UI:提供 Cyberpunk、Glacier、Gruvbox 等经典终端主题一键切换,支持移动端适配。
- 原生文件传输:集成 zmodem.js,只需在终端中执行
rz/sz命令,即可在浏览器直接与服务器双向拖放/下载文件。
flowchart TB
Browser["浏览器客户端<br/>(React + xterm.js)"]
CF["Cloudflare Edge Network"]
DO["Durable Object<br/>(SSH 会话管理)"]
Server["目标 SSH 服务器<br/>(如 Linux VPS)"]
Browser <-->|"WebSocket<br/>(前端 UI 输入与终端输出)"| CF
CF <-->|"WebSocket"<br/>路由与长连接| DO
DO <-->|"TCP Socket<br/>@cloudflare/sockets"| Server
- 用户在前端输入主机 IP、账号和密码。
- 前端与后端的 Durable Object 建立 WebSocket 连接。
- DO 接收凭据,使用
@cloudflare/sockets与目标 SSH 服务器建立 TCP 连接。 - DO 纯代码实现 SSH 协议协商(密钥交换、密码认证等),并将加密后的终端数据通过 WebSocket 转发给前端。
- 一个 Cloudflare 账号。
- Node.js 环境 (v18+)。
- 启用 Cloudflare Workers 免费计划(TCP Sockets 和 Durable Objects 功能需要)。
- Fork 本仓库 到你的 GitHub 账号。
- 修改域名:在进行部署前,请先将
wrangler.toml中的自定义域名改成你自己的域名(要求:域名需要先在 Cloudflare 中完成注册或接入)。 - 一键部署:登录 Cloudflare,进入 Workers & Pages 绑定你的 GitHub 账号,选择刚才 Fork 的仓库进行应用创建。
- 填写构建命令:在部署设置中,请务必将“构建命令”(Build command)填写为
npm install && npm run build:frontend,然后点击保存并部署(无需填写构建输出目录)。
-
克隆仓库
git clone https://github.com/newbietan/CloudSSH.git cd CloudSSH -
安装依赖
npm install
-
登录 Cloudflare
npx wrangler login
-
一键部署
npm run deploy
部署完成后,Wrangler 会输出你的 Worker URL。打开浏览器访问该 URL,即可开始使用你的 Web SSH 终端。
为防止恶意机器人滥用,建议启用 Cloudflare Turnstile 验证:
- 创建 Turnstile Widget:登录 Cloudflare Dashboard,进入 Turnstile 页面创建一个新的 Widget。
- 获取密钥:创建后会获得一个 Site Key(公开)和一个 Secret Key(保密)。
- 配置环境变量:
- 方式一部署:在 Cloudflare Dashboard 的 Workers 设置中,添加以下环境变量:
TURNSTILE_SECRET= 你的 Secret KeyTURNSTILE_SITEKEY= 你的 Site Key
- 方式二部署:取消
wrangler.toml中TURNSTILE_SECRET和TURNSTILE_SITEKEY的注释,填入对应密钥。
- 方式一部署:在 Cloudflare Dashboard 的 Workers 设置中,添加以下环境变量:
- 重新部署:运行部署命令使配置生效。
说明:Turnstile 验证为会话级别,用户通过验证后当前会话内所有功能可用,关闭浏览器后需重新验证。
本项目分为两部分:
- Frontend (前端):在
frontend/目录下,使用 Vite 构建。 - Worker (后端):在
src/目录下,包含 Cloudflare Worker 入口与 SSH 协议的核心实现。
在本地开发时,可以运行:
npm run dev此命令将启动 Wrangler 的本地开发环境服务器。
本项目基于 MIT License 协议开源。
特别声明:本项目允许商业使用及二次修改,但必须明确注明原作者。
欢迎提交 Issue 和 Pull Request 共建社区。如果这个项目对你有帮助,恳求大家给本项目点个 ⭐ Star 支持一下,非常感谢!

