可使用macos内置nettop命令实时监控各应用网络连接与流量,支持进程级查看、json导出及结合iftop实现ip级带宽可视化。

如果您希望在Mac上精确识别每个应用程序的实时网络连接状态与流量消耗,则可借助系统内置的nettop命令行工具。以下是执行此操作的具体步骤:
一、使用nettop命令查看进程级实时网络流量
nettop是macOS原生提供的终端网络监控工具,能以高频率(默认0.5秒)刷新各进程的入站与出站字节数、连接数、协议类型及端口信息,适用于定位异常联网行为或带宽占用过高应用。
1、打开“应用程序 > 实用工具 > 终端”。
2、在终端中输入命令:nettop -P -L 0,然后按回车键执行。
3、界面将列出所有活跃网络进程,重点关注“ID”、“Process”、“bytes_in”、“bytes_out”、“connections”四列数据。
4、按r键可手动刷新当前视图;按q键退出监控。
5、若需仅显示特定进程(如Chrome),可追加过滤参数:nettop -P -L 0 | grep -i chrome。
二、启用nettop持续监控并导出结构化数据
通过添加时间戳与JSON格式输出选项,nettop可生成便于后续分析的结构化日志,支持按秒级粒度追踪流量变化趋势,适用于调试后台服务或自动化脚本集成。
1、在终端中运行:nettop -P -L 0 -J bytes_in,bytes_out,connections -t external。
2、该命令将输出JSON格式数据流,每行包含一个进程的实时指标及时间戳字段“timestamp”。
3、如需保存最近60秒数据至文件,执行:nettop -P -L 0 -J bytes_in,bytes_out -t external -s 1 | head -n 60 > network_log.json。
4、观察输出中“bytes_in”和“bytes_out”的数值增量,差值即为该进程在采样间隔内的实际收发字节数。
5、若发现某进程“connections”值持续高于正常范围(如>50),可能表示其存在异常连接行为。
三、结合iftop实现接口级带宽可视化监控
iftop提供类似top的交互式界面,以倒序排列方式展示当前网络接口上各IP地址对的实时带宽占用,弥补nettop不直接显示远程主机信息的局限,适合排查P2P下载或远程访问引发的流量激增。
1、确保已安装Homebrew:若未安装,在终端中执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。
2、通过Homebrew安装iftop:brew install iftop。
3、获取当前主网络接口名称:执行networksetup -listallhardwareports | awk '/Device:/ {print $2}' | head -n1,典型输出为en0(Wi-Fi)或en1(有线)。
4、运行iftop监控指定接口:sudo iftop -i en0 -P,其中-P参数启用端口显示。
5、界面顶部显示全局速率汇总,中间列表按“发送→接收”方向排序,数值单位为KB/s或MB/s,按p键可切换端口显示开关。











