mosquitto 2.0.14 에서 Broker 설정시 패스워드 해제 방법
MQTT 관련하여 테스트 하기 위해 리눅스 민트에서 mosquitto 패키지를 설치하게 되었다.
mosquitto 패키지 저장소 오류가 생겨서 위와 같이 해결한 다음에 apt 를 이용하여 mosquitto 패키지를 설치하면 자동으로 MQTT Broker 인 mosquitto 데몬이 동작하게 된다.
위와 같이 떠있으면 정상적으로 설치가 완료되고 MQTT Broker 가 동작하는 것이다. 그런데 여기서 문제가 발생했는데 MQTT 클라이언트에서 Broker로 연결이 안되는 것이다. 물론 별도의 계정이나 패스워드를 설정하지 않았다.
관련하여 알아보니 현재 설치한 mosquitto 버전은 2.0.14 버전으로 2022/5/10일 현재 최신버전이다. 이 버전은 MQTT v5.0 까지 지원한다.
요 버전의 경우에는 Default 로 Broker 에 구독자(SUB)의 계정 및 패스워드를 설정하게 되어 있다. 따라서 당연히 별도로 설정하지 않았다면 Broker에 연결이 되지 않는다.
unauthorised clients cannot connect.
In Mosquitto 2.0 and up, you must choose your authentication options explicitly
before c
위의 링크 글을 참고하면 관련 내용이 기술되어 있다.
실제로는 계정과 패스워드를 설정하는게 보안에도 좋지만 테스트 단계에서는 이 부분이 귀찮으므로 Broker 가 설치된 서버에서 다음과 같이 설정하면 계정과 패스워드를 설정하지 않고 Broker에 연결이 가능하다.
먼저 “/etc/mosquitto/mosquitto.conf” 파일을 vi 에디터로 열어준다.
listener 1883 allow_anonymous true
위의 구문을 추가한다. 나는 Port 를 1883을 사용한다.
mosquitto.conf 파일을 저장하고 빠져나온 다음에 아래와 같이 MQTT Broker 를 재시작 해준다.
sudo service mosquitto restart
그런 다음에 MQTT 클라이언트 앱이나 프로그램으로 Broker 에 연결을 시도하면 정상적으로 연결이 되는 것을 알 수 있다.