Перейти к содержанию

MQTT сервер: различия между версиями

Материал из OpenWrt Wiki
мНет описания правки
Нет описания правки
Строка 1: Строка 1:
Для настройки MQTT-сервера на роутере с OpenWRT нужно установить пакеты <code>mosquitto</code> и <code>mosquitto-client</code> через SSH или LuCI. После установки настройте <code>mosquitto</code>, запустите службу и настройте правила фаервола для доступа из вашей локальной сети, чтобы устройства могли подключаться к брокеру на порту 1883 по протоколу TCP.  
Для настройки MQTT-сервера на роутере с OpenWRT нужно установить пакеты <code>mosquitto</code> и <code>mosquitto-client</code> через SSH или LuCI. После установки настройте <code>mosquitto</code>, запустите службу и настройте правила фаервола для доступа из вашей локальной сети, чтобы устройства могли подключаться к брокеру на порту 1883 по протоколу TCP.  


1. Установка MQTT-брокера (<code>'''mosquitto'''</code>)
=== 1. Установка MQTT-брокера (<code>'''mosquitto'''</code>) ===
 
* '''Через SSH:'''
* '''Через SSH:'''
*# Подключитесь к роутеру по SSH.
*# Подключитесь к роутеру по SSH.
Строка 16: Строка 15:
*# Найдите пакеты <code>mosquitto</code> и <code>mosquitto-client</code> в списке и установите их.  
*# Найдите пакеты <code>mosquitto</code> и <code>mosquitto-client</code> в списке и установите их.  


2. Настройка и запуск сервиса <code>mosquitto</code> Запустите службу.
=== 2. Настройка и запуск сервиса <code>mosquitto</code> Запустите службу. ===
 
Код
Код
<pre>/etc/init.d/mosquitto enable
<pre>/etc/init.d/mosquitto enable
/etc/init.d/mosquitto start</pre>
/etc/init.d/mosquitto start</pre>


* '''Включите автозапуск при загрузке роутера:''' В LuCI, в разделе "System" > "Startup", убедитесь, что служба <code>mosquitto</code> включена и будет запускаться при загрузке.  
* '''Включите автозапуск при загрузке роутера:''' В LuCI, в разделе "System" > "Startup", убедитесь, что служба <code>mosquitto</code> включена и будет запускаться при загрузке.
 
3. Настройка фаервола (Firewall)


=== 3. Настройка фаервола (Firewall) ===
* '''Создайте правило:''' В LuCI, перейдите в "Network" > "Firewall".  
* '''Создайте правило:''' В LuCI, перейдите в "Network" > "Firewall".  
* '''Добавьте правило''': для порта 1883 (TCP) на вашей локальной сети (lan):  
* '''Добавьте правило''': для порта 1883 (TCP) на вашей локальной сети (lan):  
Строка 34: Строка 31:
** '''Destination port:''' <code>1883</code>.  
** '''Destination port:''' <code>1883</code>.  


Пример использования:  
=== Пример использования: ===
 
# '''1. Подключите устройства:'''  Ваши устройства (например, с датчиками и ESP32) настройте на подключение к IP-адресу вашего OpenWRT-роутера по порту 1883.
# '''1. Подключите устройства:'''  Ваши устройства (например, с датчиками и ESP32) настройте на подключение к IP-адресу вашего OpenWRT-роутера по порту 1883.
# '''2. Публикация данных:'''  Одно устройство публикует данные (например, температуру) в определенную тему (topic) MQTT, например, <code>/sensors/temperature</code>.
# '''2. Публикация данных:'''  Одно устройство публикует данные (например, температуру) в определенную тему (topic) MQTT, например, <code>/sensors/temperature</code>.

Версия от 20:11, 14 сентября 2025

Для настройки MQTT-сервера на роутере с OpenWRT нужно установить пакеты mosquitto и mosquitto-client через SSH или LuCI. После установки настройте mosquitto, запустите службу и настройте правила фаервола для доступа из вашей локальной сети, чтобы устройства могли подключаться к брокеру на порту 1883 по протоколу TCP.

1. Установка MQTT-брокера (mosquitto)

  • Через SSH:
    1. Подключитесь к роутеру по SSH.
    2. Выполните команду для установки пакетов:

Код <pree>opkg update

opkg install mosquitto mosquitto-client

  • Через LuCI (веб-интерфейс):
    1. Перейдите в раздел "System" > "Software".
    2. Нажмите "Update lists" для обновления списка пакетов.
    3. Найдите пакеты mosquitto и mosquitto-client в списке и установите их.

2. Настройка и запуск сервиса mosquitto Запустите службу.

Код

/etc/init.d/mosquitto enable
/etc/init.d/mosquitto start
  • Включите автозапуск при загрузке роутера: В LuCI, в разделе "System" > "Startup", убедитесь, что служба mosquitto включена и будет запускаться при загрузке.

3. Настройка фаервола (Firewall)

  • Создайте правило: В LuCI, перейдите в "Network" > "Firewall".
  • Добавьте правило: для порта 1883 (TCP) на вашей локальной сети (lan):
    • Action: accept (разрешить).
    • Protocol: TCP.
    • Source zone: lan (или зона, куда подключены ваши клиенты).
    • Destination zone: Device (input) (для получения входящих соединений).
    • Destination port: 1883.

Пример использования:

  1. 1. Подключите устройства: Ваши устройства (например, с датчиками и ESP32) настройте на подключение к IP-адресу вашего OpenWRT-роутера по порту 1883.
  2. 2. Публикация данных: Одно устройство публикует данные (например, температуру) в определенную тему (topic) MQTT, например, /sensors/temperature.
  3. 3. Подписка на данные: Другое устройство или веб-сервис подписывается на эту тему, и когда данные публикуются, брокер Mosquitto доставляет их подписчикам.

Таким образом, ваш OpenWRT роутер будет выступать в роли центрального MQTT-брокера для вашего умного дома или IoT-проекта, обеспечивая обмен сообщениями между устройствами.