Mac 上的 rapportd 是什么,为什么要联网
rapportd 是 macOS 的后台进程,帮你的苹果设备互相通信,手册页的说法是它“enables Phone Call Handoff and other communication features between Apple devices”,也就是负责电话接力和设备之间的其他通信功能。真正的文件是 /usr/libexec/rapportd,以你自己的账户运行,平时几乎不占 CPU,防火墙弹窗或网络监控里出现它,通常只是它在等你的其他设备,本身不代表有问题。
你看到的是什么
运行下面两条,可以看到这个进程和它监听的端口:
ps -axo user,pid,%cpu,rss,args | grep '[r]apportd'
lsof -nP -a -c rapportd -i
写这篇时用的 Mac 上,它占 0.0% CPU、大约 20 MB 内存,监听了几个 TCP 端口,其中一个是 49152,端口号每台 Mac 可能不同。macOS 从两个 launchd 任务启动它:
/System/Library/LaunchDaemons/com.apple.rapportd.plist
/System/Library/LaunchAgents/com.apple.rapportd-user.plist
监听是为了让附近的设备能找到这台 Mac,不代表有人已经连上来,也说明不了在传什么。
为什么会注意到它
| 看到的情况 | 通常意味着 | 怎么试 |
|---|---|---|
| 防火墙 App 询问 rapportd | 它要接受你的设备发来的连接 | 路径是 /usr/libexec/rapportd 就允许 |
| 网络监控里出现它 | 设备之间的流量 | 先看流量大小 |
| 唤醒或连上 Wi-Fi 后短暂占 CPU | 设备在互相寻找 | 不用管 |
| 持续占 CPU 很多分钟 | 有东西一直在重试 | 重启 Mac,再关掉接力试试 |
| 附近有设备时 Wi-Fi 卡顿 | 可能是隔空投送或接力在占无线 | 看 Wi-Fi 卡顿和 AWDL |
苹果没有公开 rapportd 具体发什么,说得很确切的内容都要谨慎看,想看它此刻的连接可以运行:
nettop -l 1 -p rapportd -x
能关掉吗
这个进程本身没有官方开关,能控制的是大多数人想改的那个功能,打开“系统设置 › 通用 › 隔空投送与连续互通”(较早的 macOS 叫“隔空投送与接力”),关掉“允许在这台Mac和iCloud设备之间使用‘接力’”。之后进程可能还在运行,因为别的功能也可能用它,不过这仍然是个不错的测试,负载或流量停了,答案就有了;没有变化就重新打开,电话接力这类功能要靠这条通信。
在活动监视器里结束进程作为测试没什么害处,但 launchd 会再把它启动,所以解决不了什么。
它是恶意软件吗
真正的文件由苹果签名,在系统卷的 /usr/libexec/rapportd,可以检查签名:
codesign -dvv /usr/libexec/rapportd 2>&1 | grep -E 'Identifier|Authority'
同名进程从个人文件夹、/tmp 或 /Users/Shared 运行时要仔细看。路径正确说明程序是真的,但说明不了它在和你的哪台设备通信。
不要这样做
- 不要删这个文件或它的 launchd 任务,它们在受保护的系统卷上,绕过保护只会削弱这台 Mac,没有任何好处。
- 不要一上来就在防火墙里拦它,很多反馈都说这样之后设备之间的接力等功能不好用了。
- 不要照论坛上的
launchctl命令去禁用它,功能没了,也不知道症状是什么造成的。 - 不要把端口号当成被入侵的证据,它就是在监听,这是它的工作。
Mole 能做什么
在 Mole 的“状态”里,rapportd 忙的时候会列出 CPU 和内存,不忙时用表格的搜索也能找到,菜单里的“为什么在运行?”会列出可执行文件、由谁启动和监听的端口,可以很快核对这篇说的内容。Mole 把它当成系统网络服务,不提供停止它的办法,点菜单栏的网络速率打开的“网络”列表里也可能出现它。Mole 不改接力、隔空投送和防火墙设置,不过你打开它的 WiFi 低延迟开关后,隔空投送和接力可能暂时用不了,关掉就恢复。想了解更多可以看 Mac 常见进程。
常见问题
Mac 上的 rapportd 是什么?
它是苹果设备之间通信用的系统进程,电话接力也靠它,从 /usr/libexec/rapportd 运行。
rapportd 为什么要接受传入连接?
它在监听,让你的其他苹果设备能连到这台 Mac,路径是 /usr/libexec/rapportd 就是苹果的程序,拦掉可能影响接力。
可以禁用 rapportd 吗?
这个进程没有官方的禁用办法,可以在“系统设置 › 通用 › 隔空投送与连续互通”里关掉接力,但进程可能还会运行。
rapportd 为什么占 CPU 或流量?
设备互相寻找时短暂占用是正常的,如果一直占 CPU,重启 Mac,再关掉接力试试是不是它的原因。
rapportd 是病毒吗?
/usr/libexec/rapportd 这个文件是 macOS 的一部分,看路径,想更确定就用 codesign 查签名。