Termius Multiplayer 实时终端共享 | 和队友一起在同一个 Shell 里排查问题
Multiplayer 是什么
Multiplayer(也叫 Terminal Sharing)是 Termius 的实时协作功能——多个团队成员同时连接到同一个终端会话,每个人都能看到终端输出,并且轮流获得输入控制权。
典型场景:
- 实时故障排查:A 是运维,B 是开发,两人同时盯着服务器 Shell 输出,B 说「跑一下 curl xxx 看看响应」,A 敲命令,B 立刻看到结果
- 结对调试:新同事第一次排障,老同事开 Multiplayer 实时指导,不会遗漏任何细节
- 生产环境变阵:上线前多人同时确认部署步骤
Multiplayer 的工作模式
9.29.0 版本起 Multiplayer 做了大改版:
- 一个会话只有一个人有输入控制权——避免多人同时敲命令冲突
- 控制权可以随时切换——点击切换、快捷键切换、Tab 上有控件可以拖
- 参与者列表显示在终端 Tab 上——一眼看到谁在看、谁有控制权
- 支持 Split View 里使用 Multiplayer——在分屏里开共享
参与者的体验
发起人(Host):
- 在自己的终端里邀请他人
- 可以随时切换控制权给自己或他人
- 可以随时结束会话,参与者自动断开
参与者(Guest):
- 收到邀请链接 → 打开 → 实时看到终端画面
- 有权限时可以请求控制权,获得后就能敲命令
- 看到的终端画面和 Host 完全一致,包括所有历史输出和实时输入
怎么发起 Multiplayer
步骤
- 在一个已连接的终端标签上(SSH 会话进行中),找到 Multiplayer 按钮或 Tab 上的控件
- 点击开启 Multiplayer
- 可以:
- 复制邀请链接发给队友
- 从团队成员列表里选择直接邀请
- 队友点开链接 → 进入实时共享会话
邀请方式
方式一:链接邀请
- 生成一个临时链接(类似 Zoom 会议邀请)
- 发给队友(IM、邮件、飞书都行)
- 队友打开链接 → 自动登录 Termius → 进入共享会话
方式二:直接邀请
- 从 Termius 团队成员列表里选
- 对方的 Termius 客户端会收到通知 → 接受 → 进入共享
参与人数
目前 Multiplayer 没有公开的硬性人数上限。实际体验建议控制在 3~5 人以内——超过的话终端画面虽然人人能看到,但讨论容易混乱。
控制权管理
9.29.0 版本后控制权设计是核心改进:
- 同一时间只有一个人能输入——避免冲突
- 三种切换方式:
- 终端快捷键(Host 设置)
- 鼠标点击 Tab 上的控制权控件
- 参与者主动请求控制权,Host 批准
- 默认 Host 持有初始控制权
- 控制权切换有视觉提示——Tab 上谁的头像高亮谁就有控制权
这样就不会出现两个人同时敲命令、Shell 里出现一堆混乱输入的情况。
Multiplayer vs 传统远程协助
| Multiplayer | 远程桌面(向日葵、TeamViewer) | |
|---|---|---|
| 共享内容 | 只共享终端(Shell 输出和输入) | 共享整个屏幕 |
| 带宽需求 | 很低(文本流) | 较高(图像流) |
| 权限粒度 | 可以限制只有 Host 能操作 | 拿到控制权就能操作整个电脑 |
| 安全 | 只暴露终端层 | 暴露整个桌面 |
| 记录 | 有终端历史 | 依赖远程桌面的录屏功能 |
在终端场景下,Multiplayer 比远程桌面合适得多——只共享需要的东西,不暴露整个电脑,安全且高效。
Multiplayer vs tmux / screen 共享
tmux 和 screen 也能实现类似效果:
# Host 创建 tmux 会话
tmux new -s debug
# Guest 连接后 attach 进去
tmux attach -t debug
两者区别:
| Multiplayer | tmux 共享 | |
|---|---|---|
| 前提条件 | Host 开 Termius + Guest 有 Termius 账号 | Guest 需要 SSH 到同一台服务器 |
| 跨平台 | 不限设备 | 不限设备(但都要能 SSH 到服务器) |
| 控制权管理 | 显式的一人一权 | 谁 attach 进去都能敲,需要约定 |
| 记录审计 | 有 Business 版审计日志 | 依赖服务器端的 history |
| 门槛 | 有 Termius 账号就行 | 需要会 tmux |
tmux 共享完全免费且无需额外工具,但 Multiplayer 更易用且权限更明确。
Multiplayer 的常见问题
Guest 的终端会关闭吗? 9.29.0 之后:是的——Host 结束会话或 Guest 断开时,Guest 那边的临时终端自动关闭(之前版本会残留空终端)。
Guest 能不能在 Multiplayer 会话里开自己的本地命令?不能。Multiplayer 会话是纯共享视角,Guest 看到的终端就是 Host 的 SSH 会话,没有独立输入区。如果 Guest 想同时开自己的终端,需要单独连服务器。
Multiplayer 会话的历史会保存吗?会话内的输出会保存在 Host 的终端历史里(跟着 Vault 同步)。Guest 那边不会留历史。
Starter 版能用 Multiplayer 吗?目前 Multiplayer 是 Team / Business 版的功能。Starter 用户不能发起也不能被邀请参与。
典型故障排查工作流
一个实际的故障排查场景:
- Host(运维张三):Termius 连上生产服务器 → 开 Multiplayer → 把链接发给开发李四
- Guest(开发李四):点开链接 → 实时看到服务器 shell
- 张三(持有控制权):
tail -f /var/log/nginx/error.log→ 李四看到日志流 - 李四请求控制权 → 张三批准 → 李四敲
curl -v http://localhost:8080/api/health→ 张三也看到响应 - 排查清楚问题 → 张三关闭 Multiplayer → 李四自动断开 → 张三单干修复