前言
FinalShell 好用,但它是闭源的;Xshell 强,但它收费且只支持 Windows;Tabby 现代,但它是 Electron 的------开几十个标签页内存直接起飞。
作为一个天天跟服务器打交道的人,我一直在找一款开源、跨平台、轻量、内存友好的 SSH 终端工具。找了一圈没找到完全满意的,干脆自己写一个。
Rhost 是什么
!在这里插入图片描述(i-blog.csdnimg.cn/direct/abee... =x280)
Rhost 是一款基于 Tauri 2 + Rust + Vue 3 的开源远程主机管理器,对标 FinalShell,提供 SSH 终端、SFTP 文件管理、端口转发、服务器监控等能力,支持 macOS / Windows / Linux。
一句话:用更低的内存占用和更流畅的多连接体验,管理你的远程服务器。
为什么不用 Electron
Electron 类终端工具在大量终端输出时存在几个痛点:
- JSON 序列化开销大:高频字节流吞吐受限,终端刷日志时明显卡顿
- ANSI 转义序列可能损坏:颜色、光标控制在 JSON 编解码中容易出问题
- 多连接并发时内存飙升:每个连接都是一个渲染进程,开多了 UI 卡死
Rhost 采用原生二进制 IPC 流架构,从根本上解决这些问题:
rust
终端字节流 → 自定义二进制帧(type:u8 + len:u32 + payload)→ IPC Channel → xterm.js
- 高频数据流走二进制 Channel,不经 JSON
- 低频控制消息走 invoke/JSON
- 每会话独立 Channel,数据流完全隔离
实测开 10+ 终端标签页,内存占用比 Electron 类工具低一个数量级,刷日志丝滑不卡。
核心特性
| 特性 | 说明 |
|---|---|
| 多标签 SSH 终端 | xterm.js 渲染、UTF-8 全链路透传、右键菜单、多会话广播 |
| 断线自动重连 | 网络意外中断触发指数退避重连(1s 起翻倍、封顶 30s),手动断开不重连 |
| SFTP 文件管理 | 双栏浏览、流式传输队列、断点续传、暂停/取消 |
| 端口转发 | 本地/远程/SOCKS5 动态转发,状态实时推送与流量统计 |
| 服务器监控 | CPU/内存/磁盘/网络/进程周期指标,零 sudo、零远端落盘 |
| 主机密钥校验 | TOFU 首次信任 + known_hosts 持久化,密钥变更弹红色警告 |
| 安全凭证 | 密码/私钥口令存入系统密钥环,绝不写入配置文件 |
| 配置导入导出 | 整体配置与主机列表批量导入导出,导入后一键重启生效 |
技术栈
scss
后端:Rust (edition 2024) + Tokio 全异步 + russh + russh-sftp + keyring
前端:Vue 3.5 + TypeScript + Vite + Xterm.js
桌面:Tauri 2
后端所有 SSH IO 纯 async,每个会话绑定独立 IPC Channel,Rust 层统一管理会话生命周期。ssh/ 模块除 manager 外不依赖 Tauri,可独立单测。
截图
工作台全景:多标签终端 + MOTD 欢迎面板 + SFTP 文件管理 + 实时服务器监控

SFTP 双栏文件管理:流式传输队列、断点续传

可视化端口转发:本地/远程/SOCKS5 规则,实时流量统计

快速连接:输入 SSH 命令一键建立连接,内置示例与历史
文档与下载
- 📖 项目文档:shijiecloud.github.io/rhost/
- ⬇️ GitHub Releases:github.com/ShiJieCloud...
- ⬇️ GitCode Releases:gitcode.com/qq_20185737...
- 🌟 GitHub 仓库:github.com/ShiJieCloud...
- 🌟 GitCode 仓库:gitcode.com/qq_20185737...