rapportd
又称:设备间连接
简要回答
rapportd是你的Apple设备在同一网络上互相发现和通信所用的macOS进程。登录同一Apple账户的Mac、iPhone、iPad和Apple TV之间的连续互通功能,都靠它支撑。
它以你自己的账户运行,与你的其他设备保持着一个低调的连接,让在设备之间传递工作的功能能立刻响应,而不必先去搜索。
和sharingd一样,它通常出现在请求接受传入连接的防火墙提示中,因为你的其他设备需要连接到它。
为什么rapportd会出现在防火墙和活动监视器中
它在本地网络上监听你自己的设备。会逐个进程询问的防火墙,会在它第一次监听时询问,有时在macOS更新后还会再问一次。它由Apple签名,允许它能让连续互通正常工作。
它的CPU和网络占用通常极小。同一账户下的设备越多,或者网络上的设备经常断开又重新加入,它要做的事就越多。
屏蔽它会怎样
依赖设备互相发现的功能会失败或变慢,而且没有明确的错误提示。如果更改防火墙后连续互通不再工作,就在“系统设置”→“网络”→“防火墙”→“选项”中或在你的防火墙App中检查rapportd是否被拒绝了。
如何查看rapportd在做什么
rapportd会在本地网络上广播自己,让你的其他设备能找到它,“终端”可以让你看到这两端的情况。
- 打开活动监视器,点按“网络”标签页,然后在搜索栏中输入
rapportd。它的“已发送字节”和“已接收字节”通常很小。 - 打开“终端”并运行
lsof -a -i -n -P -c rapportd。以(LISTEN)结尾的行是它等待连接的端口,是一个随机的大端口号。标有ESTABLISHED的行是与其他设备的连接,通常是你自己的设备。 - 运行
dns-sd -B _companion-link._tcp local.,列出你网络中广播这项服务的Apple设备。你的Mac会以自己的名称出现。按下Control-C停止。 - 要看它自己的消息,运行
log stream --predicate 'process == "rapportd"'。按下Control-C停止。
rapportd的正常占用与异常情况
正常:CPU占用接近零,网络流量很小,当你的另一台设备靠近或加入网络时,会短暂活跃一下。
值得检查:连续几小时有稳定的流量,或者连续互通功能不再工作。常见原因有:
- 访客网络或酒店网络不让设备互相发现,所以rapportd无论尝试多久,你的设备都连不上。
- 你账户下的某台设备不断断开Wi-Fi又重新加入。
- 防火墙拒绝了rapportd,你的其他设备无法连接到它。
- 同一个网络上有很多设备登录了同一个Apple账户。
rapportd在公共Wi-Fi上会暴露什么
rapportd会在你加入的每个网络上广播_companion-link服务,广播中带有你的Mac名称,正如上面的dns-sd命令所显示的。在咖啡馆或酒店的网络上,其他设备虽然用不了这项服务,却能看到这个名称。
如果你的Mac名称里有你的全名,可以在“系统设置”→“通用”→“关于本机”→“名称”中更改。之后rapportd和Mac的其他Bonjour广播都会使用新名称。
常见问题
Mac上的rapportd是什么?
它是让你的Apple设备在同一网络上互相发现和通信的macOS进程,服务于Mac、iPhone、iPad和Apple TV之间的连续互通功能。
应该允许rapportd接受传入连接吗?
如果你在与其他Apple设备之间使用连续互通功能,就应该允许。它是macOS的一部分,由Apple签名。
rapportd是间谍软件吗?
不是。它是Apple的进程,只与登录了你自己Apple账户的设备通信。它位于/usr/libexec/rapportd,处在磁盘上只有Apple更新才能更改的密封区域中。
可以停用rapportd吗?
没有受支持的方法。它由macOS启动,位于磁盘的密封区域中。在防火墙中拒绝它,可以让你的其他设备连不上它,代价是失去需要它的连续互通功能。
rapportd为什么在监听一个端口?
你的其他Apple设备会通过本地网络连接它,所以它为它们保持一个端口开放。这个端口是随机的大端口号,并以_companion-link在本地网络上广播。
相关条目
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。