【开源】7 天,我用 Rust 复刻了 FinalShell!Rhost v1.0.0 发布

前言

FinalShell 好用,但它是闭源的;Xshell 强,但它收费且只支持 Windows;Tabby 现代,但它是 Electron 的------开几十个标签页内存直接起飞。

作为一个天天跟服务器打交道的人,我一直在找一款开源、跨平台、轻量、内存友好的 SSH 终端工具。找了一圈没找到完全满意的,干脆自己写一个。

Rhost 是什么

Rhost 是一款基于 Tauri 2 + Rust + Vue 3 的开源远程主机管理器,对标 FinalShell,提供 SSH 终端、SFTP 文件管理、端口转发、服务器监控等能力,支持 macOS / Windows / Linux。

一句话:用更低的内存占用和更流畅的多连接体验,管理你的远程服务器。

为什么不用 Electron

Electron 类终端工具在大量终端输出时存在几个痛点:

  • JSON 序列化开销大:高频字节流吞吐受限,终端刷日志时明显卡顿
  • ANSI 转义序列可能损坏:颜色、光标控制在 JSON 编解码中容易出问题
  • 多连接并发时内存飙升:每个连接都是一个渲染进程,开多了 UI 卡死

Rhost 采用原生二进制 IPC 流架构,从根本上解决这些问题:

复制代码
终端字节流 → 自定义二进制帧(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 持久化,密钥变更弹红色警告
安全凭证 密码/私钥口令存入系统密钥环,绝不写入配置文件
配置导入导出 整体配置与主机列表批量导入导出,导入后一键重启生效

技术栈

复制代码
后端: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 命令一键建立连接,内置示例与历史

文档与下载

相关推荐
kimnoic3 小时前
Python常用命令提示符使用方法详解
开发语言·python
Crazy________3 小时前
05Linux内存管理核心原理与运维实战
java·开发语言
Nebula_g4 小时前
JavaSE拓展:工具类Executors
java·开发语言·后端·spring·基础·javase
tianbin9114 小时前
2026大模型API选型指南:从训练到推理,如何构建高效稳定的模型调用链路?
开源
扶风ff4 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
程序员老陆4 小时前
C++ 多线程通信方式全景:从共享内存到结构化协调
开发语言·c++
EasyBr指纹浏览器4 小时前
自媒体标题改写怎么做?先对齐正文,再分平台找角度
开源·自媒体·文案写作
weixin199701080164 小时前
《1688消息服务落地方案:alibaba.message.* 与 Webhook 回调的可靠性与重试策略》(附Python源码)
开发语言·python
ZHOUPUYU4 小时前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php