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%, 메모리 약 20MB를 쓰고 여러 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으로 서명도 확인하세요.