Mac の rapportd とは? ネットワークアクセスを求めるのはなぜ?
rapportd は、Apple 製デバイス同士の通信を助ける 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 では、CPU は 0.0%、メモリは約 20 MB で、複数の TCP ポートを待ち受けており、その一つが 49152 でした。ポート番号は Mac ごとに異なることがあります。macOS は次の二つの launchd ジョブから起動します。
/System/Library/LaunchDaemons/com.apple.rapportd.plist
/System/Library/LaunchAgents/com.apple.rapportd-user.plist
待ち受けているのは、近くのデバイスがこの Mac を見つけられるようにするためです。ほかの誰かが接続しているという意味ではなく、何が送られているかも分かりません。
気づくきっかけ
| 見えるもの | 通常の意味 | 試すこと |
|---|---|---|
| ファイアウォールアプリが rapportd について尋ねる | デバイスからの接続を受け付けたい | パスが /usr/libexec/rapportd なら許可する |
| ネットワークモニタに表示される | デバイス間の通信 | まず通信量を確認する |
| スリープ解除後や Wi-Fi 接続後に一時的に CPU を使う | デバイス同士が見つけ合っている | 何もしない |
| 数分以上 CPU を使い続ける | 何かが再試行し続けている | Mac を再起動し、Handoff をオフにして試す |
| 近くにデバイスがあると Wi-Fi が途切れる | AirDrop や Handoff の無線処理の可能性 | Wi-Fi の途切れと AWDLを見る |
Apple は rapportd が何を送るかの一覧を公開していないので、正確な中身を断言する説明は慎重に受け取ってください。今の接続を見るには次を実行します。
nettop -l 1 -p rapportd -x
オフにできるか
プロセスそのものを止める正式なスイッチはありません。変えられるのは、多くの人が変えたい機能のほうで、システム設定 › 一般 › AirDropおよび連係(以前の macOS では AirDropとHandoff) を開き、このMacとiCloudデバイス間でのHandoffを許可 をオフにします。ほかの機能も使うため、オフにしてもプロセスは動き続けることがあります。それでも Handoff をオフにするのは有効な切り分けで、負荷や通信が止まれば答えが出ます。変化がなければ、電話の Handoff などはこの通信に依存するので、オンに戻してください。
アクティビティモニタでプロセスを終了させるのは試すだけなら無害ですが、launchd がまた起動するため、根本的な解決にはなりません。
マルウェアではないか
本物のファイルは Apple の署名つきで、システムボリュームの /usr/libexec/rapportd にあります。署名は次で確認できます。
codesign -dvv /usr/libexec/rapportd 2>&1 | grep -E 'Identifier|Authority'
ホームフォルダ、/tmp、/Users/Shared から動いている同名のプロセスは、よく調べてください。パスが正しければプログラムは本物ですが、どのデバイスと通信しているかは分かりません。
やってはいけないこと
- ファイルや launchd のジョブを削除しないでください。保護されたシステムボリュームにあり、その保護を破ると、得るものがないまま Mac を弱くします。
- 最初の手段としてファイアウォールでブロックしないでください。それが原因でデバイス間の Handoff や関連機能が使えなくなったという報告が多くあります。
- フォーラムの
launchctlコマンドで無効化しないでください。症状の原因が分からないまま機能だけを失います。 - ポート番号をハッキングの証拠と読まないでください。待ち受けているのがこのプロセスの役目です。
Mole でできること
Mole の ステータス では、rapportd が忙しいときに CPU とメモリが一覧に出ます。忙しくないときも、表の検索で見つかります。メニューの なぜ実行中? では、実行ファイル、起動元、待ち受けポートが分かり、このページで説明した内容をすばやく確かめられます。Mole はこれをシステムのネットワークサービスとして扱い、止める手段は用意していません。メニューバーのネットワーク速度をクリックして開く、アプリごとの ネットワーク リストにも表示されます。Mole は Handoff、AirDrop、ファイアウォールの設定を変えませんが、WiFi低遅延のスイッチをオンにすると、オフに戻すまで AirDrop と Handoff が使えなくなることがあります。背景をもっと知りたい場合は、Mac のよくあるプロセスを見てください。
よくある質問
Mac の rapportd とは何ですか?
電話の Handoff を含む、Apple 製デバイス間の通信のためのシステムプロセスです。/usr/libexec/rapportd から動作します。
rapportd が着信接続を受け付けたがるのはなぜですか?
ほかの Apple 製デバイスがこの Mac に届くように待ち受けています。パスが /usr/libexec/rapportd なら Apple のプログラムで、ブロックすると Handoff に影響することがあります。
rapportd を無効にできますか?
プロセスを無効にする正式な方法はありません。システム設定 › 一般 › AirDropおよび連係 で Handoff をオフにできますが、プロセスは動き続けることがあります。
rapportd が CPU やネットワークを使うのはなぜですか?
デバイス同士が見つけ合うときの短いバーストは正常です。CPU 使用が続くなら、Mac を再起動し、Handoff をオフにして原因かどうか試してください。
rapportd はウイルスですか?
/usr/libexec/rapportd のファイルは macOS の一部です。パスを確認し、確実にしたいなら codesign で署名も確認してください。