
字节笔记本
2026年10月5日 · 约 6 分钟读完
别再开四个App连服务器了,Termo 一个窗口全搞定
在 macOS 上做远程运维,你往往要同时开着好几个软件:一个终端连服务器,一个 FileZilla 传文件,一个 Microsoft Remote Desktop 连 Windows,命令行里再手动配端口转发,旁边还要开个页面盯着服务器负载。这些任务本质上都是同一件事:连到一台远程主机上完成某件事,却被拆散在风格各异、体验参差的工具之间。Termo 想改变这个局面,它是 macOS 原生、用 SwiftUI + AppKit 构建的应用,把 SSH 终端、文件传输、Windows 远程桌面、端口转发、主机监控、密钥管理整合进同一个界面。
一、Termo 是什么
Termo 是一款 macOS 原生远程运维客户端,定位是「大一统远程工作台」。目标很清晰:把日常分散在多个工具里的远程操作,整合到一个统一、克制的界面里。它不是又一个 SSH 客户端,也不是又一个 SFTP 工具,而是一个把所有远程操作都装进去的工作台。项目在 GitHub 上开源,目前已有百余颗 star,仍处于活跃开发中。

二、支持什么
| 功能 | 说明 |
|---|---|
| SSH 终端 | 完整的终端体验,PTY 支持 |
| SFTP 文件传输 | 远程文件浏览和传输 |
| Windows 远程桌面 | 内嵌 RDP 客户端,直连 Windows |
| 端口转发 | 直连 TCP 转发,命令行式的端口映射可视化操作 |
| 主机监控 | 服务器负载、状态可视化 |
| 密钥管理 | SSH 密钥生成和管理 |
每个功能单独看都不新鲜,但全部整合到一个 App 里,而且全部是 macOS 原生实现,这件事是 Termo 的差异化。
三、技术实现上的刻意取舍
这个项目的技术细节值得说,因为它不是简单套壳,而是在几个关键地方做了有代价但正确的选择。
SSH 栈:全程进程内
早期实现依赖系统 /usr/bin/ssh,能用但受系统环境约束、进程管理繁琐,也无法满足沙盒分发。后续重写为进程内的 libssh2(静态)+ 共享 OpenSSL:
- 覆盖终端 PTY、SFTP 子系统、直连 TCP 转发
- known-hosts 校验、密钥生成
- 全程不落系统 ssh 二进制、不 fork 外部进程
代价是实现复杂度大幅上升,收益是:连接更稳、启动更快、行为完全可控。

RDP 栈:内嵌 FreeRDP
内嵌 FreeRDP 静态库,配合 Objective-C 桥接:远端 BGRA 帧回主线程转为 CGImage 渲染,同时处理键盘输入与双向剪贴板同步。这意味着连 Windows 远程桌面不需要再开 Microsoft Remote Desktop,直接在 Termo 里操作。
数据安全
- 主机与会话以 JSON 落盘
- 密码合并写入系统钥匙串,从不明文存储
- 远程文件保存采用乐观锁,避免 App 与其他工具或多会话并发修改导致内容覆盖
界面
- 全自绘统一组件,深浅色主题
- 菜单栏常驻呼吸指示灯,一眼看出连接状态
- 以 Ghostty、Xcode 为参照打磨细节
- 避免暴露原生控件默认样式,持续消除卡顿和可感知的加载
四、和 iOS 端的 Monito 是什么关系
同一开发者此前还在 iOS 上发布过服务器监控应用 Monito,两个产品解决的是同一类问题在不同平台的体现:
| 维度 | Monito(iPhone) | Termo(macOS) |
|---|---|---|
| 平台 | iOS | macOS |
| 监控 | 哪吒/Komari 面板 | 内置主机监控 |
| SSH | Pro 版解锁 | 核心功能 |
| 文件管理 | Pro 版解锁 | 内置 SFTP |
| Windows 远程桌面 | 不支持 | 内置 RDP |
| 端口转发 | 不支持 | 内置 |
| 适合场景 | 移动端随时查看 | 桌面端深度运维 |
如果你同时用 iPhone 和 Mac 管理服务器,Monito + Termo 基本能覆盖你的所有远程运维需求。
五、下载和环境要求
- 系统要求:macOS 14(Sonoma)及以上、Apple Silicon(M 系列)
- 签名与公证:已完成 Developer ID 签名与 Apple 公证,Gatekeeper 正常放行
- 更新:安装后新版本自动提示更新
- 开源协议:PolyForm Noncommercial 1.0.0,个人使用、学习研究没有限制,商用需另行授权
官网下载:https://termoi.app GitHub:https://github.com/icloudza/termo
从适用场景看,它最适合手里管着几台到几十台 Linux、Windows 主机,已经被一堆零散工具折磨够了的 Mac 用户:运维、后端开发、独立开发者都是典型画像。如果你只是一年连一次服务器,系统自带终端加密码管理器其实就够,不必为了「统一」多装一个常驻应用。
六、一句话总结
Termo 的核心价值不是某个单独功能有多强,而是「统一」这件事本身。当你每天要在 SSH 终端、SFTP 工具、远程桌面客户端、端口转发命令之间来回切换时,「统一」就是生产力。尤其是 SSH 栈全部进程内实现这个技术选择,不用系统 ssh 二进制、不 fork 外部进程,说明作者不是在做个玩具,而是认真想做一个可靠的生产工具。



