Установка MQQT server на CentOS 7

1: Установка Mosquitto

Пакет mosquitto доступен в репозитории EPEL (Extra Packages for Enterprise Linux).

Устанавливаем epel-release от администратора.

sudo yum -y install epel-release

Опция –y автоматически подтверждает запросы. Теперь можно установить пакет mosquitto.

sudo yum -y install mosquitto

Запускаем mosquitto:

sudo systemctl start mosquitto

Добавляем автозапуск:

sudo systemctl enable mosquitto

Проверяем работу mosquitto
Открываем ещё одну сессию терминала, в результате у вас должно быть два терминала. Запускаем в новом терминале команду mosquitto_sub:

mosquitto_sub -h localhost -t test

Флаг –h указывает имя хоста сервера MQTT, -t – тему. После запуска команды на экране не появится вывода, поскольку команда mosquitto_sub ждет получения сообщений. Вернитесь в первый терминал и опубликуйте сообщение:

mosquitto_pub -h localhost -t test -m "hello world"

Команда mosquitto_pub использует те же опции, что и mosquitto_sub, однако в этот раз используется дополнительный флаг –m (он позволяет ввести текст сообщения). Нажмите Enter, и вы увидите в другом терминале MQTT-сообщение hello world.

Для того, чтобы остановить выполнения команды нажмите CTRL+C.

Настройка пароля MQTT

С помощью утилиты mosquitto_passwd генерируем файла паролей. Эта команда предложит ввести пароль для указанного пользователя и поместит результат в /etc/mosquitto/passwd.

sudo mosquitto_passwd -c /etc/mosquitto/passwd USERNAME

Удалите файл mosquitto.conf.

sudo rm /etc/mosquitto/mosquitto.conf

Создайте новый конфигурационный файл Mosquitto и добавьте в него информацию о новом файле паролей.

sudo nano /etc/mosquitto/mosquitto.conf

Вставьте в файл:

allow_anonymous false
password_file /etc/mosquitto/passwd

Строка allow_anonymous false блокирует доступ анонимных пользователей. Строка password_file указывает путь к файлу паролей. Сохраните и закройте файл.

Перезапустите Mosquitto:

sudo systemctl restart mosquitto

Тестируем новые настройки. Для теста отправьте сообщение без пароля:

mosquitto_pub -h localhost -t "test" -m "hello world"

Вы получите ошибку:

Connection Refused: not authorised.
Error: The connection was refused.

Перейдите во второй терминал и подпишитесь на тему test.

mosquitto_sub -h localhost -t test -u "USERNAME" -P "PASSWORD"

Вернитесь в первый терминал и опубликуйте сообщение:

mosquitto_pub -h localhost -t "test" -m "hello world" -u "USERNAME" -P "PASSWORD"

Сообщение появиться во втором терминале. Настройка Mosquitto прошла успешно.

Для шифрования паролей необходимо использовать SSL-шифрования.


Windows сбиваеться время после перезагрузки с LINUX

Решение: выполнить в виндовс команду
для х86 –


 Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1


для х64 –
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

отключить синхронизацию:
sc config w32time start= disabled

Вернуть в зад:


> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0

И запустить обратно службу синхронизации:

> sc config w32time start= demand