C#

[RabbitMQ] Windows에서 rabbitmqctl 실행 시 연결 오류 해결 방법 (.erlang.cookie 문제)

검은고양이개발자 2025. 7. 10. 11:29
반응형

RabbitMQ 설치하고 rabbitmqctl status 같은 명령어 썼는데 갑자기 에러 뿜는 경우 있음.

Error: unable to perform an operation on node 'rabbit@WIN-xxx' 
TCP connection succeeded but Erlang distribution failed

 

이게 뭐냐? 나도 처음엔 당황했는데 알고 보니까 윈도우에 설치할 때 생기는 기본 구조 문제


원인 정리 – .erlang.cookie 문제

RabbitMQ는 내부적으로 Erlang 기반으로 동작하는데, 분산 노드 간 인증을 .erlang.cookie 파일로 함.

문제는 뭐냐면...

  • RabbitMQ 서버는 윈도우 서비스(LocalSystem 계정) 로 돌아가고
  • 내가 CLI 명령어(rabbitmqctl 등) 실행할 땐 로그인한 사용자 계정으로 실행됨

즉, 같은 컴퓨터인데도 서로 다른 계정이라 쿠키도 각각 다르게 생성돼 있음.

실행 주체쿠키 파일 위치
RabbitMQ 서비스 C:\Windows\System32\config\systemprofile\.erlang.cookie
CLI 명령어 실행하는 사용자 C:\Users\{내 계정}\.erlang.cookie
 

결과? 쿠키 내용이 다르니까 서로 인증이 안 됨.


해결 방법 – 쿠키 통일시키자

  1. 서비스 쪽 쿠키 파일 확인
    • 위치: C:\Windows\System32\config\systemprofile\.erlang.cookie
  2. 그 파일을 내 사용자 폴더에 복사
  3. cmd
    copy "C:\Windows\System32\config\systemprofile\.erlang.cookie" "%HOMEPATH%\.erlang.cookie"

  4. 파일 속성도 중요함
    • 읽기 전용 체크
    • 보안 탭에서 나한테만 읽기 권한 주는 거 확인
  5. 다시 명령어 실행해보자
  6.  
cmd
rabbitmqctl status

추가 팁

  • CMD는 웬만하면 관리자 권한으로 켜는 게 낫다
  • Erlang 포트 통신(4369, 25672 등)에서 권한 문제 생길 수 있음

요약

항목내용
문제 원인 RabbitMQ 서비스와 CLI 계정이 쿠키 파일 다르게 들고 있음
해결 방법 서비스 쪽 쿠키를 내 사용자 폴더로 복사
주의 사항 권한 설정, CMD 관리자 실행 추천

 

반응형