【开源】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 命令一键建立连接,内置示例与历史

文档与下载

相关推荐
Ai-_Man3 分钟前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
raindayinrain11 分钟前
c++设计模式
开发语言·c++·设计模式
分布式存储与RustFS17 分钟前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
hiahiahia12320 分钟前
Streaming Model Output
开发语言·前端
熊猫钓鱼>_>1 小时前
鸿蒙PC高分屏与键鼠交互适配:DPI缩放、右键菜单一次讲清
开发语言·笔记·华为·ai编程·harmonyos·鸿蒙·鸿蒙心迹
七牛云行业应用1 小时前
爆火OpenFilm 0.2.6:开源 AI 视频 Agent 的安装、编辑与渲染流程(2026 年 10 月 )
人工智能·开源·音视频
octopus_c1 小时前
C++ 运算符重载详解 && 日期类的实现
开发语言·c++
开源推荐官1 小时前
多门店 O2O 商城选型复盘:从开发视角对比主流开源系统
java·架构·开源·php
Eiceblue1 小时前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
j7~1 小时前
【C++ 面试笔记】(篇二):类与数据抽象 & STL 容器与算法
开发语言·c++·面试·stl容器和算法·类和数据抽象