返回博客
·10 分钟阅读·productdevbook

如何审计 Mac 的网络活动

20 分钟即可完成的可重复审计流程,让你掌握 Mac 在和谁通信,并决定哪些该保留。

  • Security
  • Privacy
  • macOS
  • Network monitoring

你每季度留二十分钟审计 Mac 网络活动,唯一问题是你有没有一个能真正跑的流程,还是又要靠 nettop 加笔记本随机来一次。这指南给你一个可重复的 20 分钟脚本:扫、审、主机名核查、日志保留、行动项。每次以同样方式跑。跟上季度比。发现漂移。

这是不把它变成整下午的 Mac 网络活动审计方式。

为什么麻烦——以及你在找什么

审计的重点不是偏执。是漂移。每个 macOS 安装逐渐积累在某时开始跟互联网通信、再没停的后台服务。每季度审计抓:

  • 你忘了装的应用还在每天回家。
  • 一次更新后变得比以前话多的遥测端点。
  • 悄悄升级了网络足迹的辅助进程(Chrome、Slack、Adobe)。
  • 到你不认识的主机名的出站连接。

20 分钟审计、一年四次,足够抓到几乎所有这些。

开始前你需要什么

  • 菜单栏里的网络监控。 ova 是这指南用的。约 3 MB,约 1 Hz 采样按应用速率,把辅助进程归并到父应用下。
  • nettop — 内置。无需装。
  • 可选:Little Snitch 或 LuLu 做主机名级可见性。审计没它们能跑,有它们更锐利。
  • 笔记应用或纯文本文件 记发现。审计仅在你能跟上次比时有用。

就这些。除监控外无额外安装、无内核扩展、无系统改动。

审计 Mac 网络活动的 20 分钟脚本

下面是日程。坚持时序——飘过 30 分钟会把每季度习惯变成"我有时间时会做",意味着永远不做。

第 0–2 分钟:定基线

退出你不需要打开的应用。保留:你浏览器、Finder、系统服务。目标是看你的"环境"网络用量——你不在主动用时 Mac 在做什么。

从菜单栏打开 ova。记下合计上/下速率。空闲 Mac 上,你预期推送通知心跳、iCloud 和 Spotlight 几 KB/s。空闲时持续超过 100 KB/s 值得看。

第 2–7 分钟:nettop 扫

打开终端。跑:

nettop -P -m route -L 5 > ~/Desktop/nettop-$(date +%Y%m%d).txt

-L 5 捕获五个样本(默认每秒一个),然后退出。输出到桌面带日期文件——你后面会留它做保留。

它跑时你什么也别做。五秒,然后看文件。你会看到这种行:

Slack.21341    in:1.2KB  out:823B
Google Chrome.41203   in:48KB   out:9KB
WhatsApp.55102 in:512B   out:0B

扫你不认识的。你说不出名字的是线索。

第 7–12 分钟:你监控里的按应用审

切到 ova。打开按应用列表。按过去一小时(或应用默认显示的最长窗口)总字节排序。

对前 10 里每个应用问:

  1. 这个应用现在该不该在网络上? 音乐播放器——是。PDF 阅读器——大概不。
  2. 量合理吗? Slack 持续 30 KB/s 正常。Slack 持续 3 MB/s 不寻常。
  3. 这个应用是我故意装的还是遗留? 如果是遗留,卸载。

辅助进程归并在这里重要。没有它,前 10 填满 Google Chrome Helper (Renderer)Slack Helper (GPU)Discord Helper (Plugin) 这种行。有归并,每个折到父应用下,你能真正读列表。

辅助进程归并
ova 把辅助 PID 归到父下,所以按应用列表读起来像应用而不是进程树。审计跑得更快。

第 12–16 分钟:主机名核查

这里 Little Snitch(或 LuLu)配得上自己位置。如果你装了,打开网络监控视图,看审计窗口期间按进程的主机名。

如果你没有防火墙级工具,你还能通过 tail 统一日志做部分主机名核查:

log show --predicate 'subsystem == "com.apple.network.connectivity"' --style compact --last 20m | head -200

输出密集,但搜 connect to 或具体应用名会浮现域提示。

你在找的:

  • 不熟悉的主机名。 在浏览器里搜域。合法遥测端点通常有有文档的目的。
  • 频繁连接到广告/跟踪域。 常见元凶:*.doubleclick.net*.scorecardresearch.com*.googletagmanager.com。浏览器扩展能帮(uBlock Origin),但对原生应用,防火墙规则是答案。
  • 到你不预期国家的连接。 不本质坏——许多 CDN 是区域性的——但值得记下。

第 16–18 分钟:日志保留

把你生成的 nettop-YYYYMMDD.txt 文件移到一个文件夹,例如 ~/Documents/network-audits/。可选地把 ova 里的按应用摘要导出为截图。

为什么保留:你第一次审计只是快照。你第二次成了对比。到第三次,你能发现趋势——"Adobe 流量在 Q2 翻倍"或"Spotify 更新后从 200 KB/s 到 800 KB/s"。

一个平的文本文件和截图文件夹够了。不需要花哨工具。

第 18–20 分钟:行动项

写下三到五个具体行动。来自真实审计的例子:

  • "卸载 MagicScreenshotPro——去年用了两次,每次启动跟遥测通信。"
  • "在 Little Snitch 阻断 Adobe *.adobe.io——只需要它做许可证检查,那能优雅失败。"
  • "调查 mds_stores 14 MB 出站尖峰——大概是 Spotlight 重建索引,但下次审计确认。"
  • "加 Quad9 DNS 描述文件。"
  • "在 Microsoft Word 禁用分析。"

三到五是合适数字。多了你不会做。少了审计没浮现什么,通常意味着你看得不仔细。

带实时视图跑审计

ova 显示实时按应用速率和可拖动历史——本地、签名、约 3 MB。

下载 macOS 版

季度间值得跟踪什么

跟你上次审计对比值得看的几件事:

信号为什么重要
空闲基线流量漂移上意味着有新东西话多
按字节/天前 5 应用揭示新进入者或增长
不同主机名数量上升 = 联系了更多服务
在跑的后台辅助Adobe / Office 经常通过更新加新的
带内核/网络扩展的应用每个都是信任委托

你不需要电子表格。每次审计四行注释够了。

常见发现(以及怎么做)

"我卸载的应用还在网络上"

一些应用留下 LaunchAgents。列出它们:

ls ~/Library/LaunchAgents/ /Library/LaunchAgents/ /Library/LaunchDaemons/

绑到已卸载应用的任何东西——com.example.helper.plist——能移除。先 launchctl unload,然后删除。下季度再审计确认它消失。

"活动监视器显示的数字跟我菜单栏工具不一样"

活动监视器的网络标签页从进程启动以来计数。菜单栏监控按滚动窗口计数。同一份内核数据上的不同镜头——都诚实,只是测量不同区间。

"我看到稳定 50 KB/s 我说不清来源"

按顺序怀疑:iCloud 同步、网络上 Time Machine、Spotlight 重建索引、Backblaze/Carbonite 风格备份、Dropbox/Drive 同步、OS 更新下载。nettop -P 会命名 PID。多数合法。退出怀疑应用并看速率降确认。

审计期间的隐私考虑

如果你保存日志,那些日志包含主机名和时间戳——敏感元数据。本地存,不要在 iCloud 云盘同步文件夹里,除非你接受。更好是跑端到端留本地的审计:

  • 在磁盘留历史的监控(无云面板)。
  • nettop 输出存本地文件夹。
  • 笔记在本地文本文件,不在云同步文档里。

ova 设计上符合这个剖面——没有远程面板、没有账号、无遥测。带宽历史在你 Mac 上、别处没有。

更大的画面:为什么监控搭配防火墙

审计产生发现。一些发现是"我该阻断这个"。那是 Little Snitch(或 LuLu)登场的地方——设规则,下季度再审计确认规则保持。

常见模式:

  1. 审计识别话多的 Adobe 更新器。
  2. Little Snitch 规则:拒绝 Adobe 更新器出站。
  3. ova 下次你启动 Photoshop 时确认更新器流量现在为零。

监控和防火墙做不同事。真正的审计循环你要两个都有。

收尾

每季度 20 分钟习惯审计 Mac 网络活动,抓住把干净 Mac 变话多的漂移。脚本是:空闲基线、nettop 快照、带辅助归并的按应用审、主机名核查、日志保留、三到五个行动项。每次以同样方式跑。跟上次比。对发现行动。

挑一个日期——季度最后周五、长周末早上、任何能坚持的。现在加进日历。审计习惯最难的部分是开始;一旦你 ~/Documents/network-audits/ 里有一个历史文件,你会想要第二个。