윈도우에 MQTT 브로커 설치하기: Mosquitto 웹소켓과 계정 인증까지

MQTT로 PLC 데이터를 주고받으려면 브로커가 반드시 하나 있어야 합니다. 발행하는 쪽과 구독하는 쪽이 서로를 직접 아는 것이 아니라, 둘 다 브로커에 붙어 메시지를 주고받는 구조이기 때문입니다.
브로커라고 하면 별도 서버를 떠올리기 쉽지만, 윈도우 PC에서도 충분히 돌아갑니다. 사무실에 항상 켜 두는 PC가 한 대 있다면 그것으로 시작하실 수 있습니다.
이 글에서는 Mosquitto 설치부터 웹소켓 활성화와 계정 인증 적용까지 전 과정을 다룹니다.
시작하기 전에
| 항목 | 내용 |
|---|---|
| 대상 | 윈도우 PC (상시 전원 권장) |
| 설치 프로그램 | Mosquitto |
| 검증 도구 | MQTT Explorer |
| 필요 권한 | 관리자 권한 (설정 파일 수정에 필요) |
사내 PC에 설치하실 때는 방화벽에서 사용할 포트를 열어 주셔야 다른 장비가 접속할 수 있습니다.
Step 1. 설치 파일 다운로드
Mosquitto 공식 다운로드 페이지에서 설치 파일을 받습니다.

다운로드 후 파일을 실행하면 기본 경로인 C:\Program Files\mosquitto 에 설치됩니다.

Step 2. 설정 파일 수정
Mosquitto는 설치만으로 바로 사용할 수 있습니다. 하지만 기본 설정 그대로 쓰시면 안 되는 이유가 두 가지 있습니다.
- 포트 1883만 열려 있고 웹소켓이 꺼져 있습니다. 브라우저 기반 대시보드에서 접근할 수 없습니다.
- 누구나 접속할 수 있습니다. 인증이 없어 같은 네트워크에 있는 누구든 토픽을 구독하거나 값을 쓸 수 있습니다.
두 번째는 특히 중요합니다. 제어용 토픽이 열려 있으면 외부에서 설비에 값을 쓸 수 있다는 뜻입니다. 반드시 인증을 걸어 두십시오.


윈도우 검색에서 메모장을 찾아 관리자 권한으로 실행합니다. 일반 권한으로 열면 저장이 되지 않습니다.
파일 열기로 C:\Program Files\mosquitto 로 이동하고, 파일 형식을 모든 파일로 변경한 뒤 mosquitto.conf 를 선택합니다.
파일이 열리면 가장 하단에 다음 내용을 추가하고 저장합니다.
# 기본 MQTT 포트
listener 1883
# 추가 MQTT 포트
listener 1890
# 웹소켓 포트
listener 9009
protocol websockets
# 익명 접속 금지
allow_anonymous false
# 비밀번호 파일
password_file C:\Program Files\mosquitto\passwd.txt
각 설정이 하는 일
| 설정 | 역할 |
|---|---|
listener 1883 | MQTT 기본 포트. 대부분의 클라이언트가 사용합니다. |
listener 1890 | 보조 포트. 장비군을 포트로 구분하고 싶을 때 씁니다. |
listener 9009 + protocol websockets | 브라우저에서 MQTT를 쓰기 위한 웹소켓 포트입니다. |
allow_anonymous false | 계정 없이 접속하는 것을 막습니다. |
password_file | 계정 정보를 담을 파일 경로입니다. |
allow_anonymous false 를 넣으면 계정 파일을 만들기 전까지는 아무도 접속할 수 없습니다. 순서상 당연하지만, 설정만 넣고 계정을 안 만든 채 "접속이 안 된다"고 하시는 경우가 많습니다.



Step 3. 실행 확인

Mosquitto가 정상적으로 실행되는지 확인합니다. 정상 실행 시 예시 이미지처럼 열린 포트 번호가 출력됩니다.
여기까지 오면 MQTT 브로커 설치가 완료되어 PC가 MQTT 서버로 동작합니다.
포트가 출력되지 않고 오류가 난다면 대부분 mosquitto.conf 의 오타입니다. 특히 경로에 공백이 있는 C:\Program Files\... 부분을 확인하십시오.
Step 4. MQTT Explorer로 접속 검증
MQTT Explorer는 MQTT 통신 상태를 실시간으로 확인할 수 있는 대표적인 무료 모니터링 도구입니다. 브로커에 접속해 토픽 목록, 발행 메시지, 구독 현황을 한눈에 볼 수 있어 설정 검증에 유용합니다.

접속 정보는 다음과 같이 입력합니다.
- Name — 접속 이름 (자유롭게 설정)
- Protocol — 포트가 1883 또는 1890이면
mqtt://, 9009(웹소켓)이면ws:// - Host — MQTT 브로커를 설치한 PC의 IP
- Port — Protocol 설정에 맞는 포트 번호
- Username / Password — 앞에서 설정한 계정과 비밀번호
본인 PC에 브로커를 설치하고 같은 PC에서 확인하는 경우, Host에는 본인 PC IP ·
localhost·127.0.0.1세 가지 모두 사용 가능합니다.

정상 접속 화면입니다. 여기까지 확인되면 EASY-LINK를 이 브로커에 연결하실 준비가 된 것입니다.
잘 안 될 때 확인할 것
- 저장이 안 된다 — 메모장을 관리자 권한으로 실행하셨는지 확인합니다.
- 실행하면 바로 종료된다 —
mosquitto.conf문법 오류입니다. 방금 추가한 부분을 지우고 하나씩 다시 넣어 보시면 원인이 좁혀집니다. - 접속이 거부된다 — 계정 파일이 만들어졌는지,
password_file경로가 실제 파일 위치와 같은지 확인합니다. - 다른 PC에서만 접속이 안 된다 — 윈도우 방화벽에서 1883 · 1890 · 9009 포트를 열어 주십시오.
- 웹소켓만 안 된다 —
protocol websockets가 9009 listener 바로 아래에 있는지 확인합니다. 순서가 중요합니다. - PC를 껐다 켜면 멈춘다 — 서비스로 등록해 자동 시작되도록 설정하십시오.
운영할 때 챙길 것
브로커는 한 번 세워 두면 잊기 쉬운 구성 요소입니다. 그런데 브로커가 멈추면 수집도 제어도 전부 멈춥니다. 아래 정도는 챙겨 두시기를 권합니다.
- 상시 전원과 자동 시작 — 정전 후 PC가 켜지면 브로커도 자동으로 올라와야 합니다.
- 계정 분리 — 읽기 전용 계정과 쓰기 가능 계정을 나누면 사고를 줄일 수 있습니다.
- 외부 개방 여부 — 인터넷에 직접 열어야 한다면 반드시 암호화(TLS)를 함께 검토하십시오.
- 저장은 별도로 — 브로커는 메시지를 중계할 뿐 이력을 쌓지 않습니다. 데이터를 남기려면 데이터베이스 저장 구성이 따로 필요합니다.
도입을 검토하신다면
이 글의 구성은 EASY-LINK 시리즈만 있으면 그대로 재현할 수 있습니다. 현장 조건에 맞는 모델 선정이나 프로토콜 적용 가능 여부가 궁금하시면 문의해 주세요. 사용 중인 PLC 기종과 수집하려는 데이터만 알려주시면 구성안을 잡아 드립니다.
- 제품 라인업 살펴보기 — EASY-LOGGER · EASY-LINK · EASY-RELAY · EASY-TEMP
- 도입 문의
- 기술 블로그 전체 글