networkQuality 测系统级 TCP 流能力,输出 dl/ul_target_bitrate(bps),换算后验证签约带宽;lsof 查端口占用更准确;nettop 提供进程级实时流量;ifconfig+watch 可手动计算网卡瞬时速率。

networkQuality 能测出真实带宽,但不是实时网速
它测的是系统级 TCP 流能力,不是当前秒级吞吐量。执行 networkQuality 后等 5–10 秒,输出的 dl_target_bitrate 和 ul_target_bitrate 是 bps 单位(比如 128000000 ≈ 128 Mbps),除以 1000000 就是 Mbps。这个值接近你签约带宽,适合验证网络是否达标,但不能反映 Chrome 正在下载时的瞬时波动。
常见误用:把它当 iftop 用——它不刷新、不显示进程、不看当前连接。想看“现在谁在传数据”,得换工具。
查端口占用优先用 lsof,别碰 netstat
lsof 是 macOS 原生命令,结果干净直接;netstat 在新版系统里功能残缺,输出格式混乱,还常漏掉非 root 进程。
- 查 3000 端口:运行
sudo lsof -iTCP -sTCP:LISTEN -P -n | grep :3000,有输出就说明被占,看PID和COMMAND两列 - 只查本机监听(排除远程连接干扰):加
-sTCP:LISTEN参数很关键,否则会混入 ESTABLISHED 状态的连接 - 没输出 ≠ 端口空闲:可能该端口根本没被监听,或者监听在
::1(IPv6 localhost)上,此时要加-i6再试
nettop 是唯一能看进程级实时流量的终端命令
nettop 每 0.5 秒刷新一次,原生支持按进程维度统计 bytes_in、bytes_out、connections,比活动监视器更细、更及时。
- 基础监控:运行
nettop -P -L 0,按r手动刷新,q退出 - 过滤 Chrome:用
nettop -P -L 0 | grep -i chrome,注意它只过滤输出行,不改变刷新逻辑 - 导出结构化数据:加
-J bytes_in,bytes_out -t external输出 JSON,每行含timestamp,适合脚本解析 - 别信 connections 数值:如果某进程长期维持 >50 个连接,大概率是异常行为(如 P2P 或泄露连接池),不是正常 Web 服务表现
ifconfig + watch 可算有线网卡实时速率,但要手动换算
想看 en1(常见有线口)每秒收发多少 Mbps,ifconfig 是最轻量方案,不需要装任何第三方工具。
- 先确认网卡名:运行
networksetup -listallhardwareports | awk '/Device:/ {print $2}',输出可能是en1 - 每秒刷新 RX/TX 字节数:运行
watch -n 1 'ifconfig en1 | grep -E "RX|TX"' - 手动算 Mbps:记下连续两次的
RX bytes,差值 ÷ 1(秒)÷ 125000 = Mbps(因为 1 Mbps = 1,000,000 bps = 125,000 B/s) - 误差点:watch 刷新不是严格等间隔,短时间采样可能跳变;超过 10 秒的平均值才更稳

















