我用 Go + React 写了一款轻量级 SSH 客户端,告别 XShell 的臃肿

4 阅读1分钟

作为一个每天要管理十来台服务器的开发者,市面上的 SSH 客户端我都用过——XShell 收费、Tabby 太重、Electerm 偶尔卡顿。于是我自己动手写了一个。

wsShell 是一款基于 Wails v2 构建的桌面 SSH 客户端,核心特点:

🔐 安全 — 凭证 AES-256-GCM 加密存储,支持密码和私钥认证 💻 全能终端 — 基于 xterm.js,256色、10000行回滚、多标签 📁 SFTP 管理 — 双栏文件浏览器,拖拽上传下载,断点续传 🖥️ VNC 集成 — 通过 SSH 隧道安全连接远程桌面,一个软件搞定终端+文件+桌面

为什么选 Wails 而不是 Electron? 打包后只有十几MB,不内置 Chromium,内存占用只有 Electron 应用的 1/3 到 1/5。

技术栈: Go 1.25+ / React 18 / TypeScript / TailwindCSS / xterm.js / noVNC / SQLite

架构亮点:

  • Go 后端按功能模块拆分(SSH/SFTP/VNC/Config/Crypto/Store)
  • 前端 4 个独立 Zustand Store,状态隔离
  • Wails Bindings 实现前后端类型安全调用
  • Goroutine + Channel 处理 SSH 非阻塞 IO

GitHub: GitHub - Julyos-rgb/wsShell 欢迎 Star ⭐ 和 PR!