개발자
Mac에서 포트 5000 또는 7000 사용 중: AirPlay 수신 모드
Apple은 AirPlay에 TCP 포트 5000과 7000을 사용한다고 명시합니다. AirPlay 수신기가 켜져 있으면 개발 서버가 이 포트를 사용할 수 없습니다.
증상
- 포트 5000의 Flask 또는 다른 개발 서버가 “address already in use” 오류와 함께 중지됩니다.
lsof에 포트 5000 또는 7000을 사용하는ControlCenter이(가) 표시됩니다.curl localhost:5000에서 앱이 보낸 것이 아닌 응답을 반환합니다.
가능한 원인
- AirPlay 수신기. AirPlay 수신기를 사용하면 다른 Apple 기기에서 Mac으로 스트리밍할 수 있습니다. Apple은 AirPlay에 포트 5000과 7000을 명시합니다.
- 다른 서버. 프로세스가 ControlCenter가 아니라면 다른 앱이 포트를 사용 중입니다. Mac에서 포트가 이미 사용 중임을 참고하세요.
확인 방법
포트 5000을 사용하는 프로세스를 찾습니다.
lsof -nP -iTCP:5000 -sTCP:LISTEN출력 COMMAND 열에
ControlCenter이 있는 줄은 AirPlay 수신기를 뜻합니다.포트 7000을 사용하는 프로세스를 찾습니다.
lsof -nP -iTCP:7000 -sTCP:LISTEN
해결 방법
가장 쉬운 해결책은 개발 서버에 5001 또는 8000 같은 다른 포트를 사용하는 것입니다.
포트를 비우려면 Apple 메뉴 > 시스템 설정 > 일반 > AirDrop 및 Handoff를 선택하세요. 최신 버전에서는 AirDrop 및 연속성이라고 합니다.
AirPlay 수신기를 끄세요.
macOS 12에서 설정은 시스템 환경설정 > 공유 > AirPlay 수신기에 있습니다.
lsof를 다시 실행하여 포트가 비어 있는지 확인하세요.
lsof -nP -iTCP:5000 -sTCP:LISTEN
질문
AirPlay 수신 모드를 켜 둬도 되나요?
네. 서버를 다른 포트에서 실행하세요. 앱이 포트 5000 또는 7000을 반드시 사용해야 하는 경우에만 AirPlay 수신 모드를 꺼야 합니다.
서버가 Linux의 포트 5000에서 작동하는 이유는 무엇인가요?
AirPlay 수신기는 macOS 기능입니다. 다른 시스템은 이 용도로 이 포트를 사용하지 않습니다.
출처
- Apple 지원: Apple 소프트웨어 제품이 사용하는 TCP 및 UDP 포트
- Apple 지원: Mac에서 AirDrop 및 연속성 설정 변경하기
- lsof(8), macOS 27.2와 함께 설치된 매뉴얼 페이지
2026년 10월 29일 확인했습니다.