在 Mac 上管理几十台服务器,我想我找到新的方式
因为工作的关系,我需要管理大量服务器,Linux 和 Windows 都有。也就是说,我天天在 Mac 上搞运维。
最早我的体验大概是这样的:
- •
ssh root@... 等等我先去查下 IP 是多少来着 - •
上传文件命令叫什么来着?要不去搜个 SFTP 工具吧 - •
测试环境是 146,生产是 147,测试是 146,生产是 147……等下,哪台是测试来着?
记不住啊,根本记不住。
偶尔我还要连一下 Windows,那感觉就是:
我好像需要一抽屉的工具才能干完一天的活:
- • SSH 用一个工具
- • Windows 远程桌面用另一个
- • 传文件再开一个 SFTP 工具
- • 偶尔还要打开 FTP / VNC
连久了之后,我最大的感受就是:
不是机器太多,而是工作流太乱。
想通的一件事:把服务器当「资产」来管理
后来我想通了一件事:
既然服务器数量只会越来越多,那就别指望靠记忆,
而是要像管理「资产」一样去管理这些连接。
我开始重新设计自己的运维方式:
如果有一个工具能做到下面几件事,我的痛点基本就解决了。
1. 先把服务器按照「语义」分组
环境分组比死记 IP 舒服多了
比如按环境分组:
- •
DEV:开发 / 自测环境 - •
TEST:测试 / QA - •
STAGE:预发 - •
PROD:生产
看着就舒服,而且一眼就知道自己现在在哪个「世界」。大概就是这种感觉
每个分组下面,用人能看懂的名字命名
比如在 PROD 分组下,可以这么命名:
- •
计费服务:和收费、订单结算相关的服务 - •
对外接口服务:给第三方或前端 App 提供接口的服务 - •
后台管理系统:运营、客服等内部同事使用的后台 - •
定时任务服务:跑定时任务、消息消费之类的后台服务
这里只是举例,你可以完全按照你的习惯来配,内网,外网,生产,这些都可以
这样做的好处是:
- • 打开列表,一眼能看到「这是哪种环境」
- • 搜索业务名,也能迅速定位到相关服务器
- • 不再依赖 IP 记忆,而是依赖语义
- • 分组用来表示环境(DEV / TEST / STAGE / PROD)
- • 服务器命名用自然语言,比如:
测试服务器,而不是一串 IP
2. 用户名、密码、密钥,都交给工具记
老实说,我真不想再记那么多服务器的用户名、密码和密钥了。
- • 有的机器用密码登录
- • 有的机器用 Key
- • 有的机器还要跳板机
- • 还有一些历史遗留账号根本记不住是谁起的名
这些东西如果还要靠「人脑缓存」,那肯定迟早出事故。
更合理的方式是:
- • 在工具里为每台服务器配置好认证方式(密码 / 私钥 / 跳板机)
- • 可以复用同一套 Key 到不同服务器
- • 能统一管理、统一备份
只要点一下连接按钮,剩下的交给工具。
人只负责「选择目标」,而不是「搬运账号密码」。
3. 把高频操作收敛到一个工作台
回头看了一眼自己的日常,我每天重复做的事情其实就这么几类:
- • 登录服务器看日志
- • 拉配置文件 / 上传新版本
- • 远程桌面连上去点几下
- • 做一些简单的排查和运维操作
但以前,这些动作要在很多工具之间来回切换:
- • SSH:Terminal 或 某个 SSH 客户端
- • 传文件:SFTP 客户端
- • 远程桌面:RDP 工具
- • 偶尔配合一个 VNC 工具
一天下来,我脑子里记住的,不只是业务问题,还有一堆:
- • 「这个工具的快捷键是啥来着?」
- • 「上次窗口开在哪里?」
- • 「这个客户端的复制粘贴为什么又和另一个不一样?」
切来切去,真的很烦。
于是我开始刻意把这些东西,往一个工具里收拢。
4. 最后我选了「All-in-One」的方式
在 App Store 上搜 “一站式远程” 或者 “一站式运维",又试了好几款,最后我现在的习惯是用这一类 All-in-One 工具,把这些东西都放在一起:
它大概需要做到这些:
- • SSH / Telnet:常规终端操作
- • SFTP / FTP:拖拽上传、多线程传输,解决文件相关的事
- • RDP / VNC:远程桌面也在同一套窗口体系里
- • 端口转发 / 跳板机:复杂网络拓扑配置一次,后面所有连接都可以复用
这样带来的提升是非常直接的:
- • 上下文切换减少:不用在 N 个工具之间来回切
- • 配置集中管理:跳板机、端口转发、Key 都在一个地方
- • 统一习惯:快捷键、配色、字体,只需要记一套
我自己现在用的是 DartShell(主要跑在 macOS 上),
但你完全可以用任何你顺手的 All-in-One 工具,只要能做到这一点就行:
“一想到要连某台服务器,我的大脑只有一个反应:
打开同一个应用。”
小结
如果你也在 Mac 上维护一堆 Linux / Windows 服务器,可以试试这几件事:
- 1. 先把服务器资产化管理:按环境分组,用语义命名,而不是死记 IP
- 2. 统一管理认证信息:密码、密钥、跳板机全部交给工具记
- 3. 收敛高频操作到一个工作台:SSH、SFTP、RDP、VNC 尽量集中在一个应用里
当你不再被一堆工具和一堆 IP 折磨的时候,你会发现:
服务器数量没变,但脑子一下子轻松了很多。