개발자

Mac에서 포트 5000 또는 7000 사용 중: AirPlay 수신 모드

Apple은 AirPlay에 TCP 포트 5000과 7000을 사용한다고 명시합니다. AirPlay 수신기가 켜져 있으면 개발 서버가 이 포트를 사용할 수 없습니다.

적용 대상: macOS 12 Monterey 이상. 설정은 일반 > AirDrop 및 Handoff에 있으며, 최신 버전에서는 AirDrop 및 연속성에 있습니다.확인일: 2026년 10월 29일

증상

  • 포트 5000의 Flask 또는 다른 개발 서버가 “address already in use” 오류와 함께 중지됩니다.
  • lsof에 포트 5000 또는 7000을 사용하는 ControlCenter이(가) 표시됩니다.
  • curl localhost:5000에서 앱이 보낸 것이 아닌 응답을 반환합니다.

가능한 원인

  • AirPlay 수신기. AirPlay 수신기를 사용하면 다른 Apple 기기에서 Mac으로 스트리밍할 수 있습니다. Apple은 AirPlay에 포트 5000과 7000을 명시합니다.
  • 다른 서버. 프로세스가 ControlCenter가 아니라면 다른 앱이 포트를 사용 중입니다. Mac에서 포트가 이미 사용 중임을 참고하세요.

확인 방법

  1. 포트 5000을 사용하는 프로세스를 찾습니다.

    lsof -nP -iTCP:5000 -sTCP:LISTEN

    출력 COMMAND 열에 ControlCenter이 있는 줄은 AirPlay 수신기를 뜻합니다.

  2. 포트 7000을 사용하는 프로세스를 찾습니다.

    lsof -nP -iTCP:7000 -sTCP:LISTEN

해결 방법

  1. 가장 쉬운 해결책은 개발 서버에 5001 또는 8000 같은 다른 포트를 사용하는 것입니다.

  2. 포트를 비우려면 Apple 메뉴 > 시스템 설정 > 일반 > AirDrop 및 Handoff를 선택하세요. 최신 버전에서는 AirDrop 및 연속성이라고 합니다.

  3. AirPlay 수신기를 끄세요.

  4. macOS 12에서 설정은 시스템 환경설정 > 공유 > AirPlay 수신기에 있습니다.

  5. lsof를 다시 실행하여 포트가 비어 있는지 확인하세요.

    lsof -nP -iTCP:5000 -sTCP:LISTEN

질문

AirPlay 수신 모드를 켜 둬도 되나요?

네. 서버를 다른 포트에서 실행하세요. 앱이 포트 5000 또는 7000을 반드시 사용해야 하는 경우에만 AirPlay 수신 모드를 꺼야 합니다.

서버가 Linux의 포트 5000에서 작동하는 이유는 무엇인가요?

AirPlay 수신기는 macOS 기능입니다. 다른 시스템은 이 용도로 이 포트를 사용하지 않습니다.

출처

2026년 10월 29일 확인했습니다.