[mosquitto] 외부 접근(Local/AWS Inbound rule)

깨미·2021년 12월 21일
0

💻 배워가기 💻

목록 보기
22/30
post-thumbnail

allow_anonymous true, bind address

예를 들어 192.168.0.45 주소로 mosquitto를 실행할 때,
당연히 local에서 localhost로 mqtt를 publish하거나, subscribe하면 통신이 잘되는 것을 확인할 수 있다.
그러나 같은 네트워크인 다른 address에서 192.168.0.45의 mosquitto를 사용하면 작동하지 않는다. 이때 외부 접근이 가능하도록 설정을 변경해야 한다.

mosquitto.conf 파일을 수정해야 한다. 윈도우에서는 경로를 따로 설정하지 않았다면 C:\Program Files\Mosquitto 해당 경로에서 찾을 수 있고, linux에서는 ect/mosquitto에 있다.

파일 마지막에

allow_anonymous true
bind address 0.0.0.0

AWS

AWS에서는 mosquitto를 실행하려면 따로 port에 인바운드 규칙을 추가 해야 한다.

sudo netstat -tulpn 명령어를 치면 현재 연결된 tcp, udp, 대기 중인 소켓 리스트를 조회한다.

이렇게 mosquitto가 1883 port로 실행되고 있는 것을 확인할 수 있다.
이제 aws에서 1883의 port를 사용할 수 있도록 포트에 인바운드 규칙을 설정해야 한다.
아마존 홈페이지에 접속한다.
나는 ec2 서비스를 사용하기 때문에 ec2로 이동한다.

왼쪽 메뉴에 보안그릅을 선택한다.

현재 내가 사용하고 있는 인스턴스의 보안그룹을 클릭한다.

어떤 보안 그룹이 맞는 지 모르겠다면 왼쪽 메뉴에서 인스턴스를 클릭하여
보안 > 보안 그룹에서 확인할 수 있다.


다시 돌아와서 보안 그룹을 클릭하면 이렇게 정보와 규칙을 확인할 수 있다.

나는 현재 1883 포트에 인바운드 규칙을 추가한 상태이다.
규칙을 추가하고 싶다면 인바운드 규칙 편집 누른다.
규칙 추가>사용자 지정>포트 범위 입력>소스 입력 (IPv4 - 0.0.0.0/0, IPv6 - ::/0)
나는 1883에 ipv4 소스만 추가하였다.

그런 다음 규칙 저장을 누르면 이제 내 aws 서버의 mosquitto를 이용할 수 있게 된다.

profile
vis ta vie

0개의 댓글