教程

用手机管理 10 台服务器

标签、搜索、分组,以及让小机群在移动端真正用得舒服的工作流。

CC Chen Chen· 创始人·2026 年 4 月 23 日·约 8 分钟

好的命名约定

对一支 10 台服务器的小机群来说,最高杠杆的一件事就是把名字起好。糟糕的名字——server1vps-2random-vps——把手机上的列表变成半夜半睡半醒时的猜谜游戏。好的名字一眼就能告诉你这台机器是干什么的、在哪。

我自己迭代之后的写法:

<role>-<env>-<number>-<region>

prod-web-01-sgp
prod-db-01-sgp
stage-web-01-sgp
dev-web-01-local
home-nas
home-pihole

角色放最前,因为这是你最先读的部分。环境第二,免得疲惫时把生产和预发混起来。区域放最后,因为它变得最少。家用和个人机器我直接放弃结构化命名——home-nas 就够了,你有三台不是一百台。

值得保留的标签

TermAI 支持每个连接打多个标签。一不留神就会过度打标——每台服务器五个标签,全都变成噪音。克制一些有帮助。

对我来说始终回报最高的几个标签:

  • prod / staging / dev——最重要的过滤维度
  • web / db / worker——第二重要
  • oncall——当前在排班里的机器打上,下班取消。凌晨 2 点的列表应该很短。
  • home——把个人的和工作的分开

我后来停止打的标签:区域(已经在名字里)、OS 版本(在列表视图里没用)、像 nginx 这种具体服务标签(信号低)。少即是多。

用于视觉分块的分组

TermAI 里的分组本质上就是命名文件夹——可以在主机列表里折叠展开。我把它保持得很扁:每个环境一个分组(Production / Staging / Dev / Home)。每个分组内按角色排序。

Production 默认折叠。我希望是主动展开它,而不是每次打开 App 就看到。Home 默认展开——那是日常用的列表。

不要嵌套分组。"这台 prod-db 是在 Production → DB 里,还是 Production → Critical 里?"这种心智负担比多一层组织带来的价值更高。扁平分组 + 标签的扩展性,远比层级分组好。

一旦你超过 8-10 台服务器,滚动比想"该归到哪类"快。TermAI 主机列表顶部的搜索栏会同时匹配 label、host、用户名和标签。打三个字符,结果就只剩对的那台。

战术上:给服务器起名,让你日常那批机器中任何一台用 3 个字符前缀就能唯一识别。pro 对应 prod-web-01,nas 对应 home-nas,pi 对应 home-pihole。如果三个字母能区分开,那任何一个连接你都能两点一滑就发起。

你会知道命名做对了,因为你不再看列表,而是直接对着搜索栏盲打。

为重复命令准备的 Snippets

你在手机上跑的 shell 命令,和在桌面跑的不一样。桌面是探索和一次性的;手机是"每次都那五条命令"。把那五条存下来。

我用得最多的 snippets:

  • journalctl -u nginx --since 1h -n 100——看最近的 nginx 日志
  • df -h | head——快速看磁盘
  • docker compose ps——看哪些起来了
  • docker compose logs -f --tail 50 api——盯某个服务的日志
  • sudo systemctl restart caddy——一键"踢一下代理"

TermAI 里的 snippet 按分类组织,可选钉到具体主机。手机键盘是永恒的痛;把这五条命令省下来,你能拿回相当一部分移动会话的时间。

什么留给手机,什么留给笔电

有些活就是属于笔电的。别跟这一点较劲。手机用于分诊和小修,不是用来写 200 行 Terraform 的。

我自己的划分:

  • 必用手机:重启一个服务。看日志。盯一个进程。看 top。回应一个 push 过来的 Y/n。批准一个卡在我这儿的部署。
  • 有时用手机:通过 SFTP 改一行配置文件。跑一条数据库查询。拉一个远程 tarball。
  • 必用笔电:大的 schema 变更。代码评审。新服务上线。任何我希望先把 100 行滚回看三遍再动手的事。

如果一次手机会话已经超过 3 分钟,那就是一个信号:要么赶快收尾,要么升级到笔电。手机适合"做这件事";不适合"想这件事"。

当一次故障涉及不止一台机器——比如负载均衡器和它后面的应用——别反复断连再重连。TermAI 能同时开着多个终端会话,带一个会话切换器,于是你可以在一台上跟日志、在另一台上重启服务,点一下就在它们之间切换。

凌晨 2 点的工作流

把上面这些放到一起,正好就是 TermAI 当初被做出来要解决的那种场景:

  1. 告警响——手机震,通知里写了服务器名和问题。
  2. 打开 TermAI,点搜索栏——输入 3 个字符的服务器名,正确的主机被高亮。
  3. 连接——一次点击。Tailscale 隧道已经在 App 打开时就起来了。
  4. Snippet——点那条对应的已保存命令(日志 / 状态 / 重启),不用打字。
  5. 看输出,执行修复——通常就是单条重启命令。复杂的话,让 AI 助手解释一下。
  6. 确认并退出——再跑一次同一个 snippet 确认服务回来了,锁手机,睡觉。

目标时间:从掏出手机到确认修复完成,90 秒以内。机群命名做好,再加上几条 snippets,这是可以达到的。手机 SSH 的全部意义就在这里:把"告警到处理完成"的间隔缩到能在床上完成的程度。

快速事实

  • 规模化整理:标签和分组让几十个连接依然好找
  • 片段:把常用命令固定到快捷栏,不再反复手敲
  • 多会话:在多个活动会话间切换而不丢失位置
  • 按主机的 AI:助手贴着你所在的服务器(OS、最近输出、实时资源)给建议
  • 稳定寻址:内置 Tailscale 让每台机器无论在什么网络都是同一个地址
试试 TermAI

免费上手,iOS 和 Android 都有。免费档每天 5 次 AI,SSH/SFTP 不限量,内置 Tailscale。

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog