ifconfig + watch 是最轻量的实时吞吐估算方案,但需手动计算字节差值并换算为 Mbps;netstat -ib 更精确,适合稳定时间窗口测量;iperf3 用于测链路极限而非实时用量。

ifconfig 和 watch 是最轻量、无需安装的方案,但要注意它只给累计值,你得自己算差值——别直接抄屏幕上那个“RX bytes: 123456789”当实时速率用。
用 ifconfig + watch 快速估算每秒吞吐量
这个组合适合快速瞄一眼当前有线网卡(比如 en0 或 en2)是否跑满了。关键不是看绝对数值,而是看字节数每秒涨多少:
- 先确认有线接口名:
networksetup -listallhardwareports,找 “Ethernet” 对应的Device,常见是en0(内置)、en2(USB-C 以太网适配器) - 执行:
watch -n 1 'ifconfig en2 | grep -E "RX bytes|TX bytes"'(把en2换成你的真实接口) - 观察两行中
RX bytes和TX bytes后面的数字,比如从12500000变成13750000,差值是1250000字节 → 除以 125000 =10Mbps - 单位换算必须做:1 Mbps = 1,000,000 bit/s = 125,000 B/s(注意是十进制,不是 1024 进制)
容易踩的坑:ifconfig 显示的是自接口启用以来的总字节数,不是速率;watch 刷新间隔设太短(如 -n 0.5)会导致差值过小、噪声大;别用 en1——它通常是 Wi-Fi 接口。
用 netstat -ib 精确计算指定时间窗口内的平均吞吐量
当你需要避开 watch 的刷新抖动,或者想测 5 秒、10 秒这种稳定区间时,netstat -ib 更可靠。它输出的是内核维护的精确计数器,且带时间戳可对齐:
- 第一次采样:
date; netstat -ib | grep en2,记下时间(如17:02:33)和该行中的Ibytes(接收)、Obytes(发送)值 - 等满 5 秒后第二次执行同样命令,再记时间和数值
- 用第二次
Ibytes减第一次,除以时间差(秒),再除以 125000 → 得到 Mbps 接收速率;同理算Obytes得发送速率 -
netstat -ib输出里Ibytes和Obytes是纯数据字节,不含帧头、CRC 等链路层开销,所以结果贴近应用层实际吞吐
注意:netstat -ib 在 macOS 上默认按接口名排序,但输出列顺序固定,Ibytes 总在第 3 列、Obytes 在第 7 列(可用 awk '{print $3, $7}' 提取),避免靠关键词 grep 错行。
为什么不用 iperf3 查“实时吞吐量”?
iperf3 不是监控工具,它是压力发生器——它测的是“这条线最多能跑多快”,不是“你现在用了多少”。你运行 iperf3 -c 192.168.1.100,得到的 940 Mbps 是链路能力上限,但此时浏览器下载可能只占 20 Mbps,其余带宽空闲。它解决的是“带宽够不够”,不是“现在用没用、用了多少”。
- 只建议在怀疑物理链路异常(如协商成 100M 半双工)或排查交换机限速时用
-
iperf3测试会打满带宽,干扰你正在做的其他事,别在开会/传大文件时随手跑 - 服务端必须另起一台设备(Mac 本机不能同时当 client 和 server),本地环回测试无意义
终端里真正反映“此刻用了多少”的,只有 ifconfig/netstat 的差值,或图形界面里的“活动监视器”网络标签页——后者底层其实也是读同一套内核统计,只是封装好了。
有线网卡名到底是 en0 还是 en2?别猜
macOS 不保证有线接口永远叫 en0。雷电扩展坞、USB-C 以太网卡插入顺序不同,系统可能分配 en2、en3,甚至重启后变掉。硬编码接口名是最大隐患:
- 永远优先用:
networksetup -listallhardwareports | awk '/Hardware Port: Ethernet/{getline; print $2}' - 或者更稳:
ipconfig getifaddr $(route -n get default | awk '/interface:/{print $2}')—— 先拿到默认路由出口接口,再查它的 IP,间接确认 -
ifconfig en0 | grep "status:"如果显示inactive,说明这接口根本没连通,别在这儿算流量
真实场景中,一个 USB-C 以太网适配器插在 Mac mini 上,en0 是 Wi-Fi,en2 才是有线;但同一根线插到 MacBook Pro,可能变成 en1。不验证就写死名字,脚本一换机器就废。

















