Mosquitto – легковесный и высокопроизводительный MQTT-брокер с открытым исходным кодом, предназначенный для организации обмена сообщениями между устройствами в IoT-решениях. Он поддерживает протокол MQTT (Message Queuing Telemetry Transport), который идеально подходит для работы с устройствами, которые ограничены ресурсами и нестабильными сетевыми соединениями. Mosquitto легко настраивается и работает на различных платформах, включая Linux, Windows и macOS. Он поддерживает шифрование через TLS, аутентификацию пользователей и управление правами доступа. Mosquitto также предоставляет клиентские утилиты для тестирования и взаимодействия с брокером. Благодаря своей простоте и гибкости, он широко используется в IoT-проектах для обеспечения надёжной передачи данных между устройствами.
Далее в статье разберём, как установить Mosquitto на VPS, работающий под управлением Ubuntu 24.04.
Как установить Mosquitto на Ubuntu 24.04
Перед тем как установить в систему новое программное обеспечение, рекомендуется обновить информацию о версиях доступных пакетов при помощи пакетного менеджера apt
:
$ sudo apt update
Затем установите пакеты:
mosquitto
– сам MQTT-брокер;mosquitto-client
s – набор утилит для тестирования и взаимодействия с брокером.
$ sudo apt install mosquitto mosquitto-clients
Чтобы убедиться в том, что установка прошла успешно, проверьте состояние службы mosquitto
:
$ systemctl status mosquitto
В выводе команды не должно содержаться сообщений об ошибках. При этом служба должна быть запущена и установлена в автозагрузку.

Если при установке Mosquitto не был произведён старт службы, то сделать это вручную можно при помощи команды:
$ sudo systemctl start mosquitto
А с помощью следующей команды вы можете добавить службу в автозагрузку, если при установке Mosquitto этого не произошло:
$ sudo systemctl enable mosquitto
Если ваш сервер защищён брандмауэром UFW, необходимо дополнительно разрешить доступ к нему через TCP-порт, который будет использоваться брокером Mosquitto. По умолчанию номер этого порта – 1883
:
$ sudo ufw allow 1883/tcp
Проверка работоспособности Mosquitto
Для того, чтобы убедиться в его работоспособности, запустите подписку на тестовый MQTT-топик test
от локального брокера Mosquitto:
$ mosquitto_sub -h localhost -t test
В данном случае:
mosquitto_sub
– клиент MQTT, который подписывается на топик;-h localhost
– подключение к MQTT-брокеру на текущем компьютере;-t test
– указание на тестовый MQTT-топикtest
.
При выполнении данной команды терминал должен зависнуть в ожидании новых сообщений. Чтобы отправить в него сообщение, подключитесь к серверу по SSH в другом терминале и запустите команду отправки сообщения, например, такого: ***** Hello! *****
:
$ mosquitto_pub -h localhost -t test -m "***** Hello! *****"
При этом в первом терминале, находящемся в ожидании, клиент MQTT должен получить данное сообщение.

Проверка Mosquitto с удалённого Windows-клиента
Отправить сообщение можно и с удалённого клиента, например, запущенного на Windows. Но сначала, чтобы разрешить подключения извне, необходимо внести небольшие изменения в конфигурацию Mosquitto. Для этого откройте файл /etc/mosquitto/mosquitto.conf
:
$ sudo nano /etc/mosquitto/mosquitto.conf
И добавьте в него строки:
listener 1883
allow_anonymous true
В данном случае строка listener 1883
означает, что брокер Mosquitto будет слушать порт 1883. А строка allow_anonymous true
, в свою очередь, разрешает подключение без авторизации, то есть без необходимости ввода логина и пароля.
Затем закройте файл, сохранив изменения, и перезапустите службу mosquitto
:
$ sudo systemctl restart mosquitto
После чего запустите подписку, например, на тот же тестовый MQTT-топик, но уже от брокера Mosquitto с указанием IP-адреса вашего VPS:
$ mosquitto_sub -h X.X.X.X -t test
В данной команде замените X.X.X.X
на IP-адрес вашей виртуальной машины.
Затем на локальном Windows-компьютере загрузите и установите соответствующую версию клиента Mosquitto с его официального сайта.

В Windows по умолчанию служба Mosquitto устанавливается в каталог C:\Program Files\mosquitto
. Поэтому по окончании установки откройте командную строку, перейдите в данный каталог и отправьте сообщение в адрес клиента Mosquitto, запущенного на вашем VPS. Здесь также X.X.X.X
необходимо заменить IP-адресом виртуального сервера:
cd "C:\Program Files\mosquitto"
mosquitto_pub -h X.X.X.X -t test -m "Hello from Windows CMD!"
В результате сообщение должно отобразиться в терминале вашего VPS.

Использование графического MQTT-клиента
Если вы предпочитаете вместо терминальных интерфейсов использовать какие-либо графические приложения, то для работы с Mosquitto также существуют подобного рода MQTT-клиенты. К таким относятся, например, MQTT Explorer и MQTTX.
Рассмотрим пример отправки сообщений с применением MQTTX. Для начала загрузите соответствующую версию установщика с официальной страницы MQTTX, после чего установите данное ПО.

После установки запустите MQTT-клиента и кликните New Connection
. В форме создания нового подключения придумайте и укажите в поле Name
его имя, а также IP-адрес виртуального сервера в соответствующей строке. Обратите внимание, что в поле Port
обязательно должен быть указан порт для подключения к Mosquitto, по умолчанию это 1883
. Значение в поле Client ID
можно оставить предложенное приложением. А поскольку в нашем случае разрешены анонимные подключения, строки Username
и Password
необходимо оставить пустыми. После чего нажмите Connect
.

Наконец, для отправки сообщения в поле Topic
укажите тестовый MQTT-топик – test
, и ниже – текст сообщения. Чтобы сообщение было отправлено, кликните значок отправки в нижнем левом углу формы.

Таким образом, сообщение должно появиться в терминале виртуальной машины, где запущена подписка на тестовый MQTT-топик.
Тот же MQTTX можно использовать и для получения сообщений. Для чего в созданном подключении кликните New Subscription
.

Затем в поле Topic
укажите MQTT-топик, на который нужно подключить подписку, и нажмите Confirm
.

После чего MQTTX будет ожидать сообщение, которое можно отправить, например, из командной строки Windows:
cd "C:\Program Files\mosquitto"
mosquitto_pub -h X.X.X.X -t test -m "Hello from Windows CMD!"
Не забудьте заменить X.X.X.X
на IP-адрес виртуального сервера, на котором работает служба Mosquitto.

Заключение
Таким образом, мы рассмотрели, как установить MQTT-брокер Mosquitto на виртуальный выделенный сервер, работающий под управлением Ubuntu 24.04. В данной конфигурации Mosquitto можно использовать как центральный MQTT-брокер для IoT-устройств. Этим самым будет обеспечен обмен сообщениями между датчиками, контроллерами и другими устройствами через интернет. Mosquitto подходит для создания умного дома, промышленной автоматизации или мониторинга удалённых объектов. Подключённые устройства могут публиковать различные данные, например, температуру или влажность. Кроме того, они будут иметь возможность получать какие-либо команды, например, на включение и выключение.