nettop是macos原生进程级实时网络监控工具,运行nettop -p -l 0可每0.5秒刷新显示各进程的connections(瞬时活跃连接数)、bytes_in/bytes_out、pid等,支持过滤、排序及配合lsof精查协议与远程地址,精度高且无需安装。
用 nettop 命令就能直接看到每个进程当前的活跃连接数(connections),它是 macos 原生支持、无需安装、精度高且实时更新的工具。
查看所有进程的实时连接数
在终端中运行:
nettop -P -L 0
这会以 0.5 秒间隔刷新,显示每个活跃进程的以下关键信息:
- Process:进程名(如 Safari、Google Chrome)
- connections:当前活跃的 TCP/UDP 连接总数(含 ESTABLISHED、SYN_SENT、TIME_WAIT 等状态)
- bytes_in / bytes_out:最近周期内的收发字节数,辅助判断是否为高流量+高连接行为
- ID:进程 PID,方便后续排查或 kill
按 r 手动刷新,按 q 退出。注意:connections 是瞬时值,不是累计值,可直接用于并发连接评估。
快速定位高连接数进程
若想一眼识别异常连接行为(比如长期维持 >50 个连接),可结合排序或过滤:
- 运行 nettop -P -L 0 | grep -v "0$",排除 connections 为 0 的行,聚焦活跃进程
- 用 nettop -P -L 0 | awk '$6 > 30 {print $2, $6}' 筛出 connections 超过 30 的进程名和连接数($6 是 connections 列,默认字段顺序)
- 发现可疑进程后,记下其 PID,再用 lsof -p PID -i 查看它具体连了哪些远程地址和端口
补充:验证连接协议类型(TCP 还是 UDP)
nettop 默认不区分协议类型显示连接,但可通过 lsof 按协议精查:
- 查某进程的 TCP 连接:sudo lsof -p PID -iTCP
- 查某进程的 UDP 连接:sudo lsof -p PID -iUDP
- 只看监听中的 TCP 端口(服务端):sudo lsof -iTCP -sTCP:LISTEN -P -n
注意:lsof 需要 sudo 权限才能看到其他用户或系统进程的网络连接。
为什么不用 netstat 查并发连接数
netstat 只提供某一时刻的快照,无法持续刷新;而且新版 macOS 中它默认不显示 PID,即使加 -o 或 -v 参数也常漏掉非 root 进程,结果不可靠。相比之下,nettop 的 connections 列是动态统计、进程级、带刷新机制的真实并发值,更适合监控目的。











