Files
Termix/docs/readme/README-CN.md
ZacharyZcR 32d77fc6d0 feat: Step CA SSH certificates as a host authentication type (#1340)
* feat: Step CA SSH certificates as a host authentication type

Issue short-lived SSH user certificates from a smallstep CA through its
OIDC provisioner, over the CA's HTTP API rather than the step binary.
Everything after issuance reuses the OPKSSH plumbing: the same encrypted
per-user/host token store, WebSocket dialog and ssh2 certificate
injection, with the connect paths branching on a shared
usesIssuedCertificate() predicate. Instance-wide CA settings live in the
admin panel, with a private-host allowlist for the SSRF guard.

* fix: harden Step CA callback flow

* style: format Step CA changes
2026-08-25 02:56:44 +08:00

20 KiB

Termix Logo

Termix

自托管服务器管理,从 SSH 和远程桌面到自动化

English · 中文 · 日本語 · 한국어 · Français · Deutsch · Español · Português · Русский · العربية · हिन्दी · Türkçe · Tiếng Việt · Italiano

Discord Donate

Donations this month


Termix 免费且开源。如果您觉得它有用,请考虑捐赠以帮助支付服务器费用和开发时间。


Termix Banner

Repo of the Day Achievement
获得于 2025年9月1日


概览

Termix 是一个免费、开源、自托管的服务器管理平台。它把 SSH 终端、远程桌面(RDP、VNC、Telnet)、文件传输、隧道、Docker、指标和自动化集中在一个地方,支持网页端、桌面端和移动端。它是 Termius 的自托管替代品,并且永久免费。


功能

SSH 终端: 功能齐全的终端,配有类似浏览器的标签页和分屏,最多同时显示 6 个面板。可以选择主题、字体和配色。每个会话上方都有一个工具栏,显示实时的 CPU、内存和磁盘,并提供指向该主机文件、Docker、隧道和指标的快捷入口。

远程桌面: 在浏览器中使用 RDP、VNC 和 Telnet,和其他会话一样支持标签页和分屏。包含 RDP 驱动器的文件浏览器和拖放上传。在 Windows 桌面端,你还可以用原生 RDP 客户端打开主机。

SSH 隧道: 支持本地、远程和动态 SOCKS 转发,可自动重连并进行健康检查。桌面端的客户端到服务器隧道保存在本机,你也可以把预设保存到服务器,以便迁移到另一台客户端。

文件管理器: 通过 SFTP 浏览、编辑、上传、下载、重命名、移动和删除文件,支持 sudo。可以查看和编辑代码、图片、音频和视频。文件可以直接从一台服务器复制到另一台,系统会自动选择最快的路径并校验传输完整性。

Docker 和 Podman: 启动、停止、暂停和删除容器,查看它们的状态,并在容器内打开一个终端。同时支持 Docker 和 Podman。它不是要取代 Portainer 或 Dockge,只是用来管理你已有的容器。

主机管理: 用标签和可命名、可配色的嵌套文件夹来整理主机。在多台主机之间复用已保存的凭据,自动部署 SSH 密钥,把主机归到父主机下,批量编辑和导出,还可以用快速连接处理那些不想保存的一次性连接。

主机指标: 在大多数 Linux 服务器上查看 CPU、内存、磁盘、网络、温度、运行时间、进程、端口、登录记录和系统信息,并附带历史曲线图。管理卡片让你无需离开 Termix 就能处理服务、定时任务、软件包、用户、防火墙规则、WireGuard、Tailscale、SSL 证书、日志和健康检查。

自动化: 先选一个触发条件,再决定要做什么。触发条件包括指标超过阈值、主机上线或下线、健康检查状态变化、定时计划、容器事件,或者一个传入的 Webhook。步骤可以执行命令和代码片段、控制容器和隧道、唤醒主机、调用某个网址、等待、按条件分支、运行另一个自动化,并通过 ntfy、Discord 或 Webhook 通知你。测试运行让你先安全地试一遍。

机群: 通过手动挑选或标签规则把主机编成一个机群,新主机可以自动加入。一次在所有主机上执行同一条命令,向全部主机推送和拉取文件,安装软件包,并收集系统、内核、架构和运行时间的清单。

AI 助手: 可选功能,默认关闭,需要你手动开启。接入 OpenAI、Anthropic、Gemini、Ollama 或任何兼容 OpenAI 的接口,向它询问你的配置。它可以读取主机、机群、代码片段和告警,并把改动作为建议提交给你确认,而不会自行修改。它永远无法接触凭据、用户和设置。管理员可以对整个实例关闭它,你也可以在初始设置时把它隐藏。

登录与用户: 支持本地账户,以及 OIDC、LDAP、GitHub 和 Google 登录,还有两步验证(TOTP)、通行密钥(WebAuthn)和受信任设备。管理员可以管理用户、把 OIDC 群组映射到角色、查看所有平台上的活动会话并将其吊销。你可以把本地账户和 OIDC 账户关联起来,并查看记录所有人操作的审计日志。

角色与共享: 创建角色,并按四个级别把主机共享给用户或角色:连接、查看、编辑和管理。适用于所有认证方式和所有协议,并且可以覆盖共享主机所使用的凭据。

告警: 为 CPU、内存、磁盘等主机指标设置规则,触发时通过 ntfy、Discord 或 Webhook 通知你。在历史记录中查看正在触发和已恢复的告警,并忽略你不关心的那些。

主页: 一个由你自己搭建的拖放小组件网格。小组件包括主机状态、Ping、服务链接、书签、搜索、时钟、日历、倒计时、便签、RSS、天气、图片、内嵌网页、Docker、隧道、指标图表、自定义 API,甚至还有一个实时终端。

代码片段与工具: 保存常用命令,一键执行,并支持主机变量和自定义输入。可以在所有已打开的终端中同时运行一条命令,也可以带自动补全地搜索命令历史。

会话共享: 实时共享终端、RDP、VNC 或 Telnet 会话。可以发送一个无需账户即可加入的链接,也可以共享给指定的 Termix 用户,并选择只读或可读写。共享可以自动过期或随时撤销,也可以全局或按主机关闭。

会话录制与日志: 录制终端、RDP 和 VNC 会话,之后可以回放。可以下载会话的纯文本日志,也可以查看连接日志,了解连接过程中究竟发生了什么。

串口连接: 从浏览器或桌面应用连接路由器、交换机和单片机等串口设备。可设置波特率、数据位、停止位和校验位。在支持的浏览器中使用 Web Serial API,在桌面应用中使用原生后端。

Tailscale: 从你的 tailnet 中拉取设备,点几下就能把它们添加为主机,并使用 Tailscale SSH 连接,由 tailnet ACL 负责访问控制,无需保存任何凭据。也支持 Headscale 和自定义接口地址。

Proxmox: 直接从 Proxmox 实例导入主机,并在专属标签页中查看节点和虚拟机的状态,包括 CPU、内存和存储。

工作区与标签页: 保存一组标签页及其分屏布局,一键就能把整套重新打开。Termix 还会记住你上次的会话,所以刷新页面或换设备后标签页都会回来。

引导设置: 一个简短的引导流程会带你选择界面预设、主题、需要的功能,以及第一台主机。简洁模式会隐藏你用不到的东西,你随时可以重新运行引导或切换预设。

桌面独立运行与同步: 桌面应用可以完全独立运行,自带本地后端和数据库,不需要服务器。你也可以把它连到 Termix 服务器,双向同步主机、凭据、代码片段等内容,并选择连接是在本地发起还是通过服务器发起。

命令行工具: termix 命令行工具,可用于你的终端和脚本。打开终端、在单台主机或整个机群上执行命令、通过 SFTP 传输文件,以及管理主机、代码片段和凭据。用 npm install -g @termix-cli/cli 安装,或者直接下载独立的可执行文件。详见 CLI 文档

安全: 密码、密钥和其他机密按用户加密,数据库文件本身也可以在磁盘上加密。具体原理请查看文档

多语言: 内置约 30 种语言,通过 Crowdin 管理。


更多功能
  • 仪表盘 - 一眼看清你的服务器,卡片由你自己排布
  • 网络拓扑图 - 根据你的主机绘制出你的家庭实验室,并显示实时状态
  • Tmux 监视器 - 浏览 tmux 的会话、窗口和面板,支持预览和搜索
  • API 密钥 - 面向用户的密钥,带有效期,可用于脚本和 CI
  • 导出与导入 - 把主机、凭据和文件管理器数据导入导出
  • 自动 SSL - 自动签发和续期证书,并配置 HTTPS 跳转,也可以使用你自己的证书
  • 数据库 - 默认使用 SQLite,同时支持 PostgreSQL 和 MySQL
  • 现代界面 - 简洁的 React 界面,桌面和移动端都适用,提供浅色、深色和 Dracula 等主题。任何连接都能通过网址全屏打开
  • 命令面板 - 双击左 Shift,用键盘直接跳到某台主机
  • 键盘快捷键 - 在标签页之间切换、关闭标签页等,全部可以重新绑定
  • 网络唤醒 - 从 Termix 或自动化步骤中唤醒一台机器
  • 受信任代理认证 - 由反向代理完成登录,并把用户信息传递进来
  • 丰富的 SSH 功能 - 跳板机、Warpgate、TOTP 验证、SOCKS5、主机密钥验证、密码自动填充、OPKSSH、tmux、端口敲门、终端日志、代理转发、Bitwarden SSH 代理、HashiCorp Vault SSH 签名等等
  • Termix ID - 内置的 sshid.io 式功能。认领一个用户名,在解析地址上发布你的公钥,并用内置 CA 签发 SSH 证书

平台支持

平台 发行方式
Web 任何现代浏览器(Chrome、Safari、Firefox)· 支持 PWA
Windows x64/ia32 便携版 · MSI 安装程序 · Chocolatey
Linux x64/ia32 便携版 · AUR · AppImage · Deb · Flatpak
macOS x64/ia32, v12.0+ Apple App Store · DMG · Homebrew
iOS/iPadOS v15.1+ Apple App Store · IPA
Android v7.0+ Google Play Store · APK

安装

访问 Termix 文档 查看所有平台的完整安装说明。

Docker Compose 示例(如果你不打算使用远程桌面功能,可以省略 guacd 和相关网络配置):

services:
  termix:
    image: ghcr.io/lukegus/termix:latest
    container_name: termix
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - termix-data:/app/data
    environment:
      PORT: "8080"
    depends_on:
      - guacd
    networks:
      - termix-net

  guacd:
    image: guacamole/guacd:1.6.0
    container_name: guacd
    restart: unless-stopped
    ports:
      - "4822:4822"
    networks:
      - termix-net

volumes:
  termix-data:
    driver: local

networks:
  termix-net:
    driver: bridge

部署多个 Termix 后端实例时,请为所有实例配置相同的 REDIS_URL,并可选配置 TERMIX_REDIS_PREFIX。Redis 会同步协作房间的在线成员、控制请求、控制权和事件, 也会把 Step CA OAuth 回调路由回持有用户终端的实例;可通过 TERMIX_STEP_CA_REDIS_PREFIX 隔离这些短期加密消息。实时 SSH 与远程桌面传输仍 依附于创建连接的后端实例,因此负载均衡器需要保持 WebSocket 会话亲和性。 单实例部署无需 Redis。

命令行工具

Termix 还提供命令行工具,你可以在终端里管理服务器,也可以把 Termix 用在自己的脚本中。

npm install -g @termix-cli/cli
termix login --url https://termix.example.com
termix ssh 1

它可以打开终端、在单台主机或整个机群上执行命令、通过 SFTP 传输文件,以及管理主机、代码片段和凭据。完整文档见 docs.termix.site/cli

云端部署

你也可以把 Termix 服务端跑在 VPS 上,而不是自己的内网里。如果 Termix 就运行在它所管理的网络中,一旦网络出问题,Termix 也会跟着一起挂掉,而这恰恰是你最需要它的时候。放在外面运行可以保证它始终可达,还能获得固定 IP,不用 VPN 或端口转发就能从任何地方接入。

GINERNET 是 Termix 的赞助商,文档里有部署到他们 VPS 平台的分步指南。


遥测

Termix 每天会发送一次匿名的小型统计信息,让我了解有多少实例在运行、哪些功能被用到。内容包括一个随机的实例 ID、你有多少用户和主机、应用版本,以及过去 24 小时内使用了哪些功能(终端、文件管理器、隧道、Docker 等)。它绝不包含用户名、主机名、IP 地址、凭据,或任何能识别你和你服务器的信息。

该功能默认开启。你可以在管理设置的“通用”中关闭它,或者在启动 Termix 之前设置 ENABLE_TELEMETRY=false


捐赠

Termix 免费且开源,没有订阅也没有付费方案。如果你觉得它有用,可以考虑捐赠,帮忙分担服务器、域名和开发时间的成本。捐赠还能支持研究和学习 SAML、Kubernetes、Agent 等功能所需的时间。可以在下方查看进展并捐赠。

捐赠


赞助商

有意通过付费展示位支持开发吗?请发邮件到 mail@termix.site


DigitalOcean     Crowdin     Blacksmith     Cloudflare     Akamai     AWS     Rack Genius     Ginernet

支持

需要帮助或想提功能建议?可以新建一个 issue,尽量写清楚细节,如果方便请用英文。你也可以在 Discord 的支持频道提问,不过那边回复可能会慢一些。


展示


YouTube

在 YouTube 上观看版本更新介绍



Termix Screenshot 1 Termix Screenshot 2
Termix Screenshot 3 Termix Screenshot 4
Termix Screenshot 5 Termix Screenshot 6
Termix Screenshot 7 Termix Screenshot 8
Termix Screenshot 9 Termix Screenshot 10
Termix Screenshot 11 Termix Screenshot 12
Termix Screenshot 13 Termix Screenshot 14
Termix Screenshot 15 Termix Screenshot 16

部分视频和图片可能已经过时,或者不能完整展示功能。


计划功能

所有计划中的功能都在 Projects 里。如果你想参与贡献,请查看贡献指南


许可证

基于 Apache License 2.0 发布。详见 LICENSE