nettop 是 macOS 原生网络监控工具,支持进程级实时流量统计、过滤、JSON 日志输出及异常连接识别;配合 iftop 可查看远程 IP 和端口详情。

用 nettop 命令可以实时监控 macOS 各进程的网络连接与流量,它是系统原生工具,无需安装,刷新快、精度高,适合定位异常联网行为或带宽占用大户。
基础实时监控(进程级)
打开终端,输入以下命令:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- nettop -P -L 0 —— 以 0.5 秒间隔刷新,显示所有活跃进程的入站/出站字节数、连接数、协议和端口
- 重点关注列:ID(进程号)、Process(进程名)、bytes_in / bytes_out(实时收发量)、connections(当前活跃连接数)
- 按 r 手动刷新,按 q 退出
- 快速过滤某个应用:例如只看 Chrome,运行 nettop -P -L 0 | grep -i chrome
带时间戳的结构化日志输出
适合记录趋势、做自动化分析或排查后台服务:
- 输出 JSON 格式带时间戳的实时数据流:nettop -P -L 0 -J bytes_in,bytes_out,connections -t external
- 保存最近 60 秒每秒采样数据到文件:nettop -P -L 0 -J bytes_in,bytes_out -t external -s 1 | head -n 60 > network_log.json
- 注意:bytes_in 和 bytes_out 是累计值,差值才是该秒真实收发字节数
- 若某进程 connections 长期 >50,可能有异常连接行为(如 P2P、扫描、心跳过密)
补充:查看接口级 IP 流量(需安装 iftop)
nettop 不显示远程 IP,如需知道“跟谁在传数据”,可搭配 iftop:
- 先装 iftop:brew install iftop(没装 Homebrew 就先运行安装脚本)
- 查主网卡名:networksetup -listallhardwareports | awk '/Device:/ {print $2}' | head -n1(通常为 en0 或 en1)
- 监控指定网卡:sudo iftop -P -f "port 80 or port 443"(加 sudo 是必须的)
- 界面中按 P 切换端口显示,按 o 冻结排序,按 q 退出

















