# 查出 Mac 上哪个 App 在占网

> 活动监视器统计的是进程启动后的累计流量，会把此刻占满带宽的 App 藏起来，实时流量用 nettop，连接目标用 lsof。

Published: 2026-08-12 | Updated: 2026-08-16

有东西在占着网，Wi-Fi 图标一直在动，人却没在干什么，热点流量一个下午就烧完，或者一坐下来干活视频通话就开始卡。macOS 能回答这个问题，只是工具散落各处，而且每个工具里最显眼的那个数字都是累计值而不是实时值，人就被带到了错误的进程上。

**短答：** 活动监视器 的网络标签能给出进程名，但那些列统计的是每个进程启动以来的累计值，要看*此刻*谁在传数据，用 `nettop`，要看一个进程在跟哪些远端主机说话，用 `lsof -i`。

## 活动监视器 能给出进程名

打开 活动监视器，选 **网络** 标签，凡是传过数据的进程都会出现，带着已发送和已接收的字节数。

按这些列排序，人才会被带到错误的进程上，它们是每个进程启动以来攒下来的总量，所以上次重启后就一直在跑的守护进程，会压过这一分钟正在把链路打满的那个应用，按「已接收字节」排序，排在最上面的十有八九不是此刻的元凶。

有两行经常把人吓一跳，通常不用管：

- **mDNSResponder** 负责整台系统的 DNS 和本地网络发现，开机几周的 Mac 上它能显示到 GB 级，它只是其他进程解析名字时的代理，不是自己在后台下载。
- **kernel_task** 会出现，是因为网络工作会经过内核，同样的误判在 CPU 上的样子见 [kernel_task 占用过高](https://mole.fit/zh/blog/kernel-task-high-cpu-mac)。

窗口底部有一张每秒进出流量的实时图，改什么设置的时候该看的是这张图，不是那些列。

## `nettop` 显示此刻谁在传

`nettop` 才是回答真正那个问题的工具，macOS 自带，不用装。

```
nettop -P -L 1 -J bytes_in,bytes_out
```

```
,bytes_in,bytes_out,
syslogd.362,0,22701,
apsd.368,685304,414375,
mDNSResponder.480,4189609493,104188210,
```

`-P` 按进程而不是按连接聚合，`-L 1` 采一次样就退出而不是交互跑，`-J` 用来选列，去掉 `-L` 交互运行，它会原地刷新，追查的时候就要这个模式。

要看增量而不是总量，隔几秒采两次样再对比，两次之间涨了几十 MB 的那个进程才值得查，总量很大但两次之间没变化的，只是闲置的历史。

## `lsof -i` 显示它连到了哪里

有了名字，下一问通常是数据发到了哪里。

```
sudo lsof -i -n -P | grep ESTABLISHED
```

`-n` 跳过反向 DNS，`-P` 跳过端口名查询，输出又快又直白，每条已打开的连接都能看到进程、本地端口和远端地址，不加 `sudo` 只能看到自己的进程，很多时候已经够用。

解析这些地址的时候得老实，属于大型云厂商的 IP 几乎说明不了什么，因为大半个互联网都托管在那里，把它当线索，别当鉴定。

## 常见的那些答案

先别假定出了问题，那些本来就会自己用网、不用人点的东西，先核一遍。

| 原因 | 怎么认出来 | 在哪管 |
|---|---|---|
| iCloud 照片同步 | 导入照片后持续上传 | 照片 > 设置 > iCloud |
| iCloud Drive | 大文件变动后出现活动 | 系统设置 > Apple 账户 > iCloud |
| macOS 或 App Store 更新 | `softwareupdated`、`appstoreagent` | 系统设置 > 通用 > 软件更新 |
| 第三方同步客户端 | Dropbox、Google Drive、OneDrive 的助手进程 | 应用自己的偏好设置 |
| 备份软件 | 按计划长时间稳定上传 | 备份应用本身 |
| 浏览器标签页 | 视频、卡住的上传、自动播放的页面 | Chrome 的任务管理器、Safari 的活动窗口 |

软件更新值得单独说一句，因为它默认后台下载，完整的 macOS 安装包有好几个 GB，在按流量计费的链路上，往往就是这一个设置在作怪。

## macOS 不会告诉你的事

三条边界，不少热门文章会跳过：

- **没有内置的按应用带宽历史。** 活动监视器 和 `nettop` 报的都是进程启动以来，或开始盯着的那一刻起的数，macOS 里没有任何一份可以事后查阅的按应用记录。
- **按进程的总量不是按应用的总量。** 浏览器会把流量摊到多个渲染进程上，一个助手守护进程也可能同时给好几个应用带流量。
- **经过 VPN 或系统扩展的流量，可能记在扩展头上**，而不是产生流量的那个应用。

声称能给出完整按应用历史拆分的工具，要么自己装了一个网络过滤器，要么在估算，信那个数字之前，得先知道它是哪一种。

## 一套可重复的检查

1. 看 活动监视器 网络标签底部的实时图，别看那些列。
2. 隔几秒采两次 `nettop -P -L 1`，对比差值。
3. 对涨上去的那个进程跑 `lsof -i -n -P`，看它连到了哪里。
4. 暂停嫌疑应用或同步服务，确认图掉下去。
5. 如果什么都没掉，流量就不是用户应用来的，去查软件更新和 iCloud。

第四步是人最容易跳过的，也是鉴定和猜测的分界。

## 监视器放在哪

[Mole](https://mole.fit/) 把实时网络吞吐放在菜单栏，挨着 CPU、内存和温度状态，连接忙的时候当场能看见，不用事后再拼，它报自己能测到的吞吐，不会为了声称一份 macOS 本身不提供的按应用历史，去装一个网络过滤器。

## 常见问题

### 为什么 mDNSResponder 用了那么多数据？

它给整台系统解析名字、做本地网络发现，很多其他进程的流量就被记在它头上，它自己并没有在下载什么。

### 能看到某个应用昨天用了多少数据吗？

macOS 看不了，没有内置的按应用历史，提供这个能力的第三方工具会自己装一个网络扩展来观察流量。

### 热点上网时怎么查是谁在用流量？

到系统设置 > Wi-Fi > 详细信息 里给这个网络打开低数据模式，会停掉包括自动更新下载在内的几项后台服务，剩下的再用上面的 `nettop` 对比去查。

### 网络活动高是不是中了恶意软件？

很少是第一信号，上面那些常见解释几乎能覆盖所有情况，先走完那些再把稳定的后台流量当成可疑。

---

Canonical HTML page: https://mole.fit/zh/blog/what-app-is-using-my-network-mac
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
