指南/通过SSH使用Vitals
通过SSH使用Vitals:从任何电脑查看另一台Mac的CPU、内存和App
简要回答
在你要查看的Mac上打开“远程登录”,然后在任何电脑上用ssh [email protected]连接。macOS自带的top -o cpu会显示它的进程,memory_pressure会显示它的内存压力。如果那台Mac运行着Vitals,它的命令行会通过同一个连接回答:~/Library/Application\ Support/Vitals/vitals top cpu --watch列出占用CPU最多的App,并计入它们的帮助程序,每两秒刷新一次。Vitals是一款Mac活动监视器和进程检查器,还能通过它的MCP服务器为你PC上的AI助手回答同样的问题。
如何通过SSH查看Mac
- 01 在你要查看的Mac上打开“系统设置”,点按“通用”,然后点按“共享”,打开“远程登录”。它下方的一行会给出连接用的命令,例如
ssh [email protected]。 - 02 在你自己的电脑上打开“终端”(Windows上则是PowerShell),运行这个命令。出现提示时,输入那台Mac的登录密码。
- 03 运行
top -o cpu查看占用CPU最多的进程,按Q退出。top -o mem则按内存排序。 - 04 运行
memory_pressure查看还有多少可用内存,运行pmset -g batt查看电池。df -h /显示磁盘用了多少。 - 05 如果那台Mac运行着Vitals,运行
~/Library/Application\ Support/Vitals/vitals status用几行看清整台Mac,运行~/Library/Application\ Support/Vitals/vitals top cpu --watch查看占用CPU最多的App,每两秒刷新一次。
完整路径很重要:由SSH启动的shell不会读取Homebrew添加到PATH中的文件夹,所以只输入vitals会找不到命令。在你自己的电脑上把这个路径放进shell别名,就不用每次都输入。
有些Mac你要照看,却不坐在它面前:父母的Mac、工作室里的电脑、隔壁房间里跑着本地模型的Mac mini。对这样的Mac,你只能远程提问。SSH是每台Mac都已具备的入口:从任何其他电脑(包括Windows和Linux)打开那台Mac上的终端。通过它能看到什么,取决于那台Mac上运行着什么。下表列出每个问题需要用什么。
通过SSH能看到什么
| 问题 | 仅用macOS | 那台Mac装有Vitals时 |
|---|---|---|
| 是什么在占用CPU? | top -o cpu,每行一个进程 | vitals top cpu,每行一个App,含帮助程序 |
| 内存快用完了吗? | memory_pressure和vm_stat | vitals status memory |
| 它有多热?风扇在转吗? | 只能看出是否在降速降温:pmset -g therm | vitals status heat |
| 这是什么进程? | ps -p和codesign -dv | vitals process:签名者、版本、启动、子进程 |
| 它昨晚在做什么? | 不保留任何记录 | vitals history day |
| 端口11434上是什么? | lsof -i :11434 | vitals find :11434 |
打开“远程登录”
“远程登录”就是macOS的SSH服务器。它默认关闭,要在“系统设置”→“通用”→“共享”中打开。旁边的信息按钮可以选择允许哪些用户登录:只允许你需要的那个账户更安全。Mac必须处于唤醒状态才能回应:“系统设置”→“能耗”(笔记本电脑上是“电池”→“选项”)中的“唤醒以供网络访问”能让它在有人连接时唤醒。
在同一网络中,用Mac的名称加上.local就能连到它。在家以外的地方,你需要一个入口,最安全的是在你的设备之间建立私有网络,例如Tailscale,而不是在路由器上开放端口。在你自己电脑的~/.ssh/config中加一行,就能给那台Mac起个短名,只需输入ssh dads-mac。
macOS自带的命令能显示什么
top是终端里最接近活动监视器的工具:进程按CPU排序,每个旁边列出内存。它把每个帮助程序单独计算,所以一个浏览器就有三十行,运行本地模型的App可能只是一个你认不出名字的进程。memory_pressure给出的那一个数字,能说明Mac是否内存不足;参见内存压力。
温度和图形芯片就难多了。在Apple silicon上,没有命令能以度数显示温度:pmset -g therm只说明Mac是否在降速降温,sudo powermetrics要用管理员密码读取图形芯片,每秒输出成页的数字。macOS不保留任何历史记录,所以凌晨三点的变慢,等你去看时已经无迹可寻。
通过SSH运行Vitals的命令
Vitals的命令行查询的是同一台Mac上运行的Vitals App,所以通过SSH,它回答的是那台Mac的情况。需要满足两个条件:Vitals在你登录的账户中运行,只要那个人已登录就是如此;并且在它的“设置”→“集成”中打开了“允许AI助手向Vitals查询”,这会启用该命令。
之后,每个命令都和在那台Mac前使用时一样:status查看整台Mac,app Ollama查看一个App,process完整查看一个进程,history day查看过去一天。在任何一个命令后加上--json,你自己电脑上的脚本就能读到JSON。
- 检查它是否回应:
ssh dads-mac "~/Library/Application\ Support/Vitals/vitals version"。 - 实时查看:
ssh -t dads-mac "~/Library/Application\ Support/Vitals/vitals top cpu --watch"。按Control-C停止。 - 少打几个字:在你自己的电脑上,把
alias dadsmac='ssh -t dads-mac "~/Library/Application\ Support/Vitals/vitals"'添加到shell的配置文件中,然后运行dadsmac status。
另一台电脑上的AI助手
Vitals有一个MCP服务器,这是Claude等AI助手向App提问的方式。服务器就是同一个命令,所以你PC上的助手可以直接询问另一台Mac:在助手的MCP设置中,把命令设为ssh,参数设为["dads-mac", "~/Library/Application\\ Support/Vitals/vitals", "mcp"],其中的反斜杠保留了文件夹名称中的空格。之后它就能根据那台Mac自己的读数,回答“那台Mac上是什么在用图形芯片”或“它昨晚热不热”。
为此,SSH登录必须无需输入密码,因为助手无法输入:用ssh-copy-id dads-mac设置一次密钥即可。
通过SSH做不到的事
Vitals的窗口和菜单栏留在它们运行的那台Mac上;SSH传输的是文本,不是窗口。要远程查看它们,请使用“屏幕共享”,它也在“系统设置”→“通用”→“共享”中。通过SSH退出App时,会先在终端中询问,和在那台Mac前一样;而停在登录界面、没有人登录的Mac,没有运行中的Vitals可以询问。
Vitals能多做什么
Vitals回答它所运行的那台Mac的情况,任何能通过SSH连到它的电脑都能问。
- App已计入帮助程序,可按CPU、内存、功率、磁盘或网络查看
- 内存压力、温度、风扇和图形芯片,无需管理员密码
- 完整查看任何进程:代码签名、父进程、命令行、CPU时间和内存峰值
- 最长一年的历史记录,昨晚的变慢到早上还能查到
- 供脚本使用的JSON,以及另一台电脑上的AI助手可以使用的MCP服务器
须知
- Vitals不会开启SSH,也不会开放自己的端口。“远程登录”是macOS的功能,默认关闭,要你自己打开。
- 窗口和菜单栏无法远程显示。这要用“屏幕共享”。
常见问题
可以从Windows远程监控Mac吗?
可以。Windows 10和11自带SSH:在PowerShell中运行ssh,加上那台Mac的用户名和地址。先在Mac上打开“远程登录”。
如何在Mac上打开SSH?
“系统设置”→“通用”→“共享”→“远程登录”。它下方的一行会显示用来连接的命令。
可以通过SSH查看活动监视器吗?
看不到窗口。在终端中,top -o cpu显示同样的进程,memory_pressure显示内存压力。要看到窗口本身,请使用“屏幕共享”。
为什么通过SSH会出现“vitals: command not found”?
由SSH启动的shell不会读取Homebrew添加到PATH中的文件夹。请使用完整路径~/Library/Application\ Support/Vitals/vitals,或者把/opt/homebrew/bin添加到那台Mac的~/.zshenv中。
另一台Mac上必须运行Vitals吗?
是的,要在你登录的账户中运行,并在它的“设置”→“集成”中打开“允许AI助手向Vitals查询”。命令只是询问正在运行的App,本身不测量任何东西。
可以通过SSH查看Mac的温度吗?
在Apple silicon上,macOS没有能显示温度的命令;pmset -g therm只说明Mac是否在降速降温。那台Mac运行着Vitals时,vitals status heat会显示CPU和GPU的温度以及风扇。
有没有能远程监控另一台Mac的App?
Vitals通过SSH回答它所运行的那台Mac的情况:App、进程、温度和一年的历史记录,以文本或JSON形式提供,还能通过它的MCP服务器回答另一台电脑上的AI助手。
术语表中的相关条目
更多指南
- Mac为什么这么卡
- 是什么在消耗Mac的电量
- 哪个App在占用CPU或内存
- Mac为什么无法睡眠
- Chrome占用内存过多
- Mac风扇为什么这么吵
- 如何控制Mac的风扇转速
- 如何释放Mac的内存
- Docker占用内存过多
- 如何停止Docker容器
- Mac音量混音器
- Cursor占用CPU过高
- Claude Code占用内存过多
- Claude Code和Codex的用量限额
- Claude App占用CPU过高
- Codex占用CPU过高
- Ollama占用内存过多
- 活动监视器替代品
- iStat Menus替代品
- Stats替代品
- Mac上的任务管理器
- 最佳Mac系统监控工具
- 最佳Mac菜单栏监控工具
- 最佳Mac音量混音器
- Mac上的htop
- Mac版Process Explorer
- 最好用的Mac温度监控工具