How to Install the Mosquitto MQTT Broker on Linux (Ubuntu)?

by Jun 21, 2022MQTT

With IoT becoming a leading name in the market, businesses are keen to import it in their strategy. Due to the increasing demand, many people seek to learn the use of Mosquitto MQTT broker Linux to pump up their IoT productivity.

Eclipse Mosquitto is an open-source message broker (EPL/EDL licensed) that supports MQTT versions 5.0, 3.1.1, and 3.1. The MQTT protocol uses a publish/subscribe method to deliver a lightweight messaging method. This makes it outstanding for Internet of Things (IoT) communications, as with low-power sensors or mobile devices like phones, embedded computers, and microcontrollers. Mosquitto is a lightweight operating system that may be employed on many devices, from low-power single-board computers to full-fledged servers. This tutorial guides you on how to install MQTT Mosquitto Broker version 2.0, MQTT version v5.0, on your linux machine.

Refer this article for the introduction of MQTT Mosquitto Broker.

So, here’s a tutorial on how to install an MQTT broker for a Linux (Ubuntu) machine.

Pre-Requisites

  1. Ubuntu 16.04 server with root access
  2. TCP: 1883 open port on Firewall

Installation of Mosquitto Broker on Linux (Ubuntu) Platform

Step 1: The Installation of the broker

Firstly, you need to update the package list of Ubuntu. Then, you must install the recent version of Mosquitto broker available in it.

Run the following commands,

sudo apt-get update

sudo apt-get install mosquitto

Step 2: Installation of the clients

Mosquitto clients helps in testing MQTT via a command-line utility. You should install publisher and subscriber clients which sends and receives the payload/messages. You need to make use of two separate terminals. The first terminal is to subscribe to a topic called “test”. The second terminal is for publishing a message. Use the following mosquitto command to install clients for MQTT brokers.

sudo apt-get install mosquitto-clients

Note: First subscribe to the topic, before publishing the messages on the topic.

Subscription to Topic “Test”

mosquitto_sub -t “Test”

Here “mosquitto_sub” is a subscribe client that we got installed from the previous command. “-t” is trailed by the topic name “Test”.

If you want to view the mosquitto process on the background, add -d flag to the command.

Publishing a Message to the topic “Test”

In the second terminal window, you need to publish a message to the topic “Test”.

The following command can do this:

mosquitto_pub -m “hello world” -t “Test”

Note the additional flag “-m”. It is followed by the message to be published.

Hit the “Enter Key”. You will then find that the message you entered is displayed on the first terminal window, where the mosquitto_sub client has been running.

Mosquitto Version

You can also check the version of the mosquitto with the following command,

sudo mosquitto –v

Step 3 (Optional) : Securing with a password

MQTT possesses a utility for generating a password file. You need to type the command: “mosquitto_passwd“.

mosquitto_passwd is a tool for managing password files for mosquitto. The flag -c tends to create a new password file, and this will overwrite the existing files. You have to create a new when you want to setup a password, so in the command below, the new username is “user”. As soon as you create a new username, you will be prompted to create a password for this username.

sudo mosquitto_passwd -c /etc /mosquitto / passwd user

Password: ***********

Now, create a configuration file that will point to the created password file.

sudo nano /etc/mosquitto/conf.d/default.conf

Now you have created a file default.conf, add the following lines to the file.

allow_anonymous false

password_file /etc/mosquitto/passwd

Now, Save and Exit with “Ctrl+O,” “Enter,” and “Ctrl+X“.

Another method: You can also directly add these lines in the main mosquitto.conf file in the mosquitto folder, just remove the last line include_dir /etc/mosquitto/conf.d and add the above lines in the configuration file.

Testing the Changes

Restart mosquitto:

sudo systemctl restart mosquitto

Exit the subscribe client window by pressing “Ctrl+C”. And then, restart with the given mosquitto command:

mosquitto_sub -t “test” -u “<username>” -P “<Password>”

Try to publish a message in the client window without using the password.

mosquitto_pub -t “Test” -m “hello world”

If the below message shows, it indicates successful implementation of the changes.

  • Connection Refused: not authorized.
  • Error: The connection was refused.

Now, try publishing the message with a username and password-

mosquitto_pub -t “test” -m “hello world” -u “<username>” -P “<Password>”

It will display a message in the subscribe client window as in Step 2.

Without Password : Publisher and Subscriber

Testing the Installation

The testing process in Linux remains the same as in Windows.

Open terminals and type the below command.

netstat –at

The output should show that the MQTT broker is running on port 1883.

Multiple MQTT Brokers

You can configure the MQTT broker in such a way that it can run on many ports. It requires the creation of multiple instances of Mosquitto. However, you can find several tutorials for the same on the internet for your reference.

With all these said, you can now set up a password protected Mosquitto MQTTserver for your IoT tasks. You can also use the Public IP of your Ubuntu server for MQTT broker Linux based projects.

Creating a multiplication Skill in Alexa using python

Written By Monisha Macharla

Hi, I'm Monisha. I am a tech blogger and a hobbyist. I am eager to learn and explore tech related stuff! also, I wanted to deliver you the same as much as the simpler way with more informative content. I generally appreciate learning by doing, rather than only learning. Thank you for reading my blog! Happy learning!

RELATED POSTS

How to use MQTTBox to debug MQTT messages?

How to use MQTTBox to debug MQTT messages?

MQTTBox is a versatile MQTT (Message Queuing Telemetry Transport) client tool that facilitates testing and debugging of MQTT-based applications. MQTT is a lightweight messaging protocol commonly used in IoT (Internet of Things) and other scenarios where low-bandwidth,...

How to enable Mosquitto MQTT over WebSocket on Windows

How to enable Mosquitto MQTT over WebSocket on Windows

WebSocket is one of the communication protocols which provides full duplex communication over a single TCP/IP connection. It uses HTTP as a intial connection establishment. The WebSocket enables the communication from the web browser (client) to the server, in which...

MQTT Mosquitto Broker on Windows via Windows PowerShell

MQTT Mosquitto Broker on Windows via Windows PowerShell

Eclipse Mosquitto is an open-source message broker (EPL/EDL licensed) that supports MQTT versions 5.0, 3.1.1, and 3.1. The MQTT protocol uses a publish/subscribe method to deliver a lightweight messaging method. This makes it outstanding for Internet of Things (IoT)...

How to build an MQTT Server using Raspberry Pi

installing-and-testing-MQTT-on-Raspberry_Pi What is MQTT ? MQTT stands for Message Queuing Telemetry Transport and is a network messaging protocol commonly used for messaging between IoT devices. MQTT is a publish/subscribe protocol that allows edge-of-network devices...

CoAP and MQTT: Analyzing the Best IoT Protocol

CoAP and MQTT: Analyzing the Best IoT Protocol

INTRODUCTION TO CoAP and MQTT CoAP and MQTT are two of the most important and most used IoT protocols nowadays. Both are equally important in machine communication. CoAP is a considerable competitor for MQTT because of the similarities in their use. Yet both have...

Mosquitto MQTT Broker introduction

Mosquitto MQTT Broker introduction

In this tutorial, we will discuss about the intro of Mosquittto MQTT broker. MQTT Broker is responsible for receiving network connections from the client and handling the client’s requests of Subscribe/Unsubscribe and Publish, as well as forwarding the messages...

How to Install the Mosquitto MQTT Broker on Windows?

How to Install the Mosquitto MQTT Broker on Windows?

The Mosquitto or MQTT broker is an OASIS standard messaging protocol for IoT. The inculcation of IoT in modern-day lives has pulled MQTT in the picture. Being a lightweight messaging transport that can remotely connect devices, MQTT tutorials were in much demand. So,...

How to choose an MQTT broker for an IoT project?

How to choose an MQTT broker for an IoT project?

What is MQTT Broker? MQTT stands for Message Queuing Telemetry Transport is an open OASIS and ISO standard lightweight, a publish-subscribe network protocol that transports messages between devices. Basically, MQTT Broker is simply software running on the computer. It...

Setting up a private Mosca MQTT broker using Node.js

Setting up a private Mosca MQTT broker using Node.js

In this tutorial, we are going to learn all about setting up a private Mosca MQTT broker using Node.js. But before we get into it let us brush up what we know about MQTT protocol. MQTT stands for Message Queuing Telemetry Transport. It works on the pub sub-model. The...

VIDEOS – FOLLOW US ON YOUTUBE

EXPLORE OUR IOT PROJECTS

IoT Smart Gardening System – ESP8266, MQTT, Adafruit IO

Gardening is always a very calming pastime. However, our gardens' plants may not always receive the care they require due to our active lifestyles. What if we could remotely keep an eye on their health and provide them with the attention they require? In this article,...

How to Simulate IoT projects using Cisco Packet Tracer

In this tutorial, let's learn how to simulate the IoT project using the Cisco packet tracer. As an example, we shall build a simple Home Automation project to control and monitor devices. Introduction Firstly, let's quickly look at the overview of the software. Packet...

All you need to know about integrating NodeMCU with Ubidots over MQTT

In this tutorial, let's discuss Integrating NodeMCU and Ubidots IoT platform. As an illustration, we shall interface the DHT11 sensor to monitor temperature and Humidity. Additionally, an led bulb is controlled using the dashboard. Besides, the implementation will be...

All you need to know about integrating NodeMCU with Ubidots over Https

In this tutorial, let's discuss Integrating NodeMCU and Ubidots IoT platform. As an illustration, we shall interface the DHT11 sensor to monitor temperature and Humidity. Additionally, an led bulb is controlled using the dashboard. Besides, the implementation will be...

How to design a Wireless Blind Stick using nRF24L01 Module?

Introduction Let's learn to design a low-cost wireless blind stick using the nRF24L01 transceiver module. So the complete project is divided into the transmitter part and receiver part. Thus, the Transmitter part consists of an Arduino Nano microcontroller, ultrasonic...

Sending Temperature data to ThingSpeak Cloud and Visualize

In this article, we are going to learn “How to send temperature data to ThingSpeak Cloud?”. We can then visualize the temperature data uploaded to ThingSpeak Cloud anywhere in the world. But "What is ThingSpeak?” ThingSpeak is an open-source IoT platform that allows...

Amaze your friend with latest tricks of Raspberry Pi and Firebase

Introduction to our Raspberry Pi and Firebase trick Let me introduce you to the latest trick of Raspberry Pi and Firebase we'll be using to fool them. It begins with a small circuit to connect a temperature sensor and an Infrared sensor with Raspberry Pi. The circuit...

How to implement Machine Learning on IoT based Data?

Introduction The industrial scope for the convergence of the Internet of Things(IoT) and Machine learning(ML) is wide and informative. IoT renders an enormous amount of data from various sensors. On the other hand, ML opens up insight hidden in the acquired data....

Smart Display Board based on IoT and Google Firebase

Introduction In this tutorial, we are going to build a Smart Display Board based on IoT and Google Firebase by using NodeMCU8266 (or you can even use NodeMCU32) and LCD. Generally, in shops, hotels, offices, railway stations, notice/ display boards are used. They are...

Smart Gardening System – GO GREEN Project

Automation of farm activities can transform agricultural domain from being manual into a dynamic field to yield higher production with less human intervention. The project Green is developed to manage farms using modern information and communication technologies....