Арендуйте NVMe VPS
Посмотрите рейтинг VPS с NVMe дисками и выберите подходящего провайдера.
ПерейтиВ данной статье рассмотрим, как установить брокер Mosquitto чтобы протокол MQTT работал на сервере с операционной системой Ubuntu.

Для чего нужен MQTT?
MQTT — легкий и открытый протокол для обмена данными, созданный для передачи данных на удаленные расстояние, где передается небольшой размер информации и есть ограничение по пропускной способности канала.
Пример использования данного протокола: допустим у Вас есть датчик, который измеряет температура воздуха в комнате, и Вам требуется проверять эту температуру на своем сервере — для этой цели идеально подойдет протокол MQTT.

Как работает MQTT?
В MQTT есть понятие клиенты и брокер. Брокер или сервер — это главный объект, который получает и передает данные дальше. Клиенты — это все остальные участники, например датчик, который считывает температуру и сервер, на котором смотрят температуру будут клиентами.
Клиент будет отправлять данные, о температуре, брокер MQTT будет их принимать и передавать клиенту серверу, который будет их получать.
Установка MQTT
Для начала подключимся к серверу по SSH и выполним команду по добавлению репозитория Mosquitto:
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppaПосле выполнения команды мы должны увидеть примерно следующий текст:

Для обновления всех пакетов при помощи добавленного репозитория используем команду:
sudo apt-get updateВы обнаружите похожий вывод команды:

Теперь для установки Mosquitto вводим команду:
sudo apt-get install mosquittoДалее для установки пакетов клиента Mosquitto выполним следующую команду:
sudo apt-get install mosquitto-clientsВыполним следующую команду, чтобы проверить состояние службы Mosquitto:
sudo service mosquitto statusСамые первые строки в выводе должны показывать статус службы. Active (running) означает, что Mosquitto активен и запущен для работы.

Также можно выполнить команду, чтобы проверить ожидает ли сервер Mosquitto по порту 1883, который установлен по умолчанию.
netstat -an | grep 1883Данный вывод показывает, что сервер Mosquitto открыт сокеты ожидания IPv4 и IPv6 для порта 1883:

Защита брокера MQTT
Пока что любой, кто знает IP-адрес брокера может использовать его для передачи данных по MQTT.
Вводим следующую команду (вместо USERNAME указываем логин, который будет использовать при авторизации):
sudo mosquitto_passwd-c/etc/mosquitto/passwd USERNAMEПосле выполнения команды, система запросит пароль. Вводим пароль и запоминаем его, он потребуется для авторизации.
Открываем файл default.conf для редактирования.
sudo nano /etc/mosquitto/conf.d/default.confДобавляем в начало файла следующие 2 строки (они отвечают за требование авторизации по логину и паролю):
allow_anonymous falsepassword_file /etc/mosquitto/passwdФайл будет выглядеть так:

Сохраняем и закрываем данный файл и перезапускаем брокера командой:
sudo service mosquitto restartТеперь при попытке подписаться на топик брокера мы получим сообщение «Connection error: Connection refused: not authorised».
Попробуем подписаться на топик брокера с использованием аргументов –u и –P (-u указываем наш логин и -p указываем наш пароль):
mosquitto_sub -h localhost -t test -u "USERNAME" -P "PASSWORD"После выполнения данной команды подключение проходит успешно.
Предыдущая статья:
Установка Home Assistant на VPS c OC Ubuntu
Комментарии ()