iftop可实时监控Mac网络接口带宽占用,按IP对倒序显示发送/接收速率,支持禁用DNS解析(-n)、过滤端口(-P)及文本导出(-t -L),需通过Homebrew安装并授权终端网络访问权限。

在终端中用iftop实时监控当前网络接口速率
你需要快速看清哪台远程设备正在吃掉你Mac的带宽,比如下载卡顿、上传缓慢时定位源头IP,iftop能以秒级刷新显示接口上各IP对的实时流量,比活动监视器更底层、比nettop更直观。
方法一:直接运行基础监控(推荐首次使用)
1、打开“应用程序 > 实用工具 > 终端”。
2、执行sudo iftop -i en0,回车后输入管理员密码(输密码时无光标闪烁,输完直接按回车)。
3、界面顶部显示总带宽、峰值、平均值;中间列表按当前带宽倒序排列,格式为“本地IP → 远程IP”,右侧两列分别是“发送”和“接收”的实时速率(单位默认为KB/s或MB/s)。
4、按 q 键退出;按 P 键暂停刷新,方便截图或抄写IP;按 S 键切换是否显示源主机名(避免DNS解析拖慢响应)。
方法二:跳过DNS解析,提升响应速度
1、在终端中运行:sudo iftop -i en0 -n。
2、“-n”参数强制禁用域名反向解析,所有远程地址均以纯IP形式显示,尤其在连接大量节点(如P2P客户端、云同步服务)时,能避免因DNS超时导致界面卡顿或数据延迟。
方法三:锁定特定端口或协议,缩小观察范围
1、若只想看HTTP/HTTPS流量,运行:sudo iftop -i en0 -P tcp:80,443。
2、该命令仅高亮显示目标端口的连接,其余行变灰,便于聚焦排查网页加载慢或API调用异常问题。
注意:en0是Wi-Fi常用接口名,有线网卡通常是en1或en2;不确定时先执行networksetup -listallhardwareports | awk '/Device:/ {print $2}'确认真实接口名,填错接口名会导致iftop报错退出且不提示原因。
让iftop持续运行并导出最近30秒流量快照
当你需要把瞬时流量变化保存下来做对比分析,比如发给IT同事协助排查、或验证某操作是否真降低了带宽占用,就得用文本模式加时间截断。
第一步:启用文本输出模式
在终端中输入:sudo iftop -i en0 -t -L 30。
第二步:理解输出结构
每秒输出一行,格式为“时间戳|本地→远程|发送速率|接收速率”,例如:15:22:41|192.168.1.5→104.18.34.123|1.23MB|456KB。其中“-L 30”表示只保留最近30行,旧数据自动滚动丢弃。
第三步:重定向保存到文件
执行:sudo iftop -i en0 -t -L 30 > iftop_30s.log 2>&1,该命令会把全部30秒的文本流存入当前目录的iftop_30s.log文件,供后续用文本编辑器或Excel打开分析。
第四步:停止记录
等满30秒后命令自动结束;若想提前终止,按 Ctrl+C 即可,已写入的内容仍保留在文件中。
解决iftop启动失败的三个关键检查点
如果执行sudo iftop后提示“command not found”或“Permission denied”,别急着重装,先逐项核对:
① 检查Homebrew是否已安装:在终端输入which brew,若返回空行,说明未安装,需先运行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。
② 确认iftop是否已通过Homebrew安装:输入brew list | grep iftop,无输出则执行brew install iftop。
③ 验证系统权限是否放行:macOS Ventura及更新版本默认阻止终端访问网络活动,首次运行sudo iftop时会弹窗提示,必须点击“始终允许”,否则后续每次都会失败——这个授权只在第一次弹窗时有效,错过就只能去“系统设置 > 隐私与安全性 > 完全磁盘访问”里手动添加终端应用。

















