MyTetra Share
Делитесь знаниями!
Краткое руководство по файлу Mosquitto.conf с примерами
Время создания: 20.12.2024 18:08
Автор: alensav
Текстовые метки: Краткое руководство по файлу Mosquitto.conf с примерами
Раздел: MOSQUITT_SETTING
Запись: alensav/MyTetra2/main/base/1734707309zv0cjd0u62/text.html на raw.githubusercontent.com

Обновлено: 20 января 2024 г. Автор: steve

Краткое руководство по файлу Mosquitto.conf с примерами

Вы можете настроить брокер Mosquitto с помощью файла конфигурации.

Файл конфигурации по умолчанию называется mosquitto.conf и используется брокером mosquitto при запуске в качестве демона Linux или службы Windows.

Файл mosquitto.conf находится в каталоге /etc/mosquitto в Linux и в каталоге c:\mosquitto\ в Windows.

Примечание: установщик Windows позволяет вам выбрать каталог.

Важно: чтобы изменения в файле mosquitto.conf вступили в силу, необходимо перезапустить брокер mosquitto.

Однако многие изменения могут вступить в силу без перезапуска брокера и отмечены в руководстве комментарием « Перезагружено по сигналу перезагрузки» .

MQTTv5 и MQTT v3.1.1

Брокер Mosquitto поддерживает оба типа клиентов, поэтому некоторые настройки в файле конфигурации будут влиять только на клиентов MQTTv5.

Слушатели

Можно настроить брокер Mosquitto для прослушивания нескольких портов одновременно.

Это очень полезно, если вы хотите, чтобы ваш брокер поддерживал несколько конфигураций протоколов. Наиболее распространенными являются:

  1. MQTT
  2. MQTT+SSL
  3. MQTT +Вебсокеты
  4. MQTT + Веб-сокеты + SSL

В конфигурации по умолчанию используется прослушиватель по умолчанию, который прослушивает порт 1883.

Чтобы настроить брокер на прослушивание дополнительных портов, необходимо создать дополнительных прослушивателей .

Если вы посмотрите на настройки, то увидите, что они разделены на разделы, и некоторые из них влияют на весь экземпляр брокера , тогда как другие влияют на конкретного слушателя.

Значительное изменение, внесенное в версию 1.5, позволило сделать многие параметры конфигурации, которые ранее были глобальными, индивидуальными для каждого слушателя .

Однако для сохранения обратной совместимости эту опцию необходимо сначала включить.

per_listener_settings [ правда | ложь ]

Установка значения true повлияет на следующие параметры конфигурации.

файл_пароля, файл_acl, файл_psk, allow_anonymous, allow_zero_length_clientid, плагин_auth, auth_opt_*, префикс_автоид_идентификатора.

Наиболее важной является возможность настраивать параметры аутентификации и контроля доступа для каждого слушателя, а не глобально, как это было до версии 1.5.

IPv6

При добавлении прослушивателя в файл mosquitto.conf mosquitto будет прослушивать этот порт на предмет трафика IPV4 и IPv6.

Вы можете выбрать версию IP с помощью параметра socket_domain.

Так

слушатель 1883

будет прослушивать как IPV4, так и IPv6 на порту 1883 и

прослушиватель
домена сокета 1883 ipv6

будет прослушивать только IPv6 на порту 1883 и

прослушиватель
домена сокета 1883 ipv6

будет прослушивать только IPv4 на порту 1883

Настройки по умолчанию

Все настройки имеют настройки по умолчанию, которые не установлены в файле конфигурации, но являются внутренними для mosquitto. Настройки в файле конфигурации переопределяют эти настройки по умолчанию.

Настройки Примечания

При обращении к руководству Mosquitto.conf вы столкнетесь с двумя важными свойствами настройки. Это:

  • Глобально – это означает, что они применяются ко всем слушателям.
  • Перезагрузка по сигналу перезагрузки . – Изменения могут быть реализованы во время работы Mosquitto с помощью перезагрузки.

Глобальные настройки

Эти настройки являются глобальными и обычно перезагружаются по сигналу перезагрузки .

К ним относятся ведение журнала и расположение файлов. Ведение журнала более подробно рассматривается в руководстве по ведению журнала  .

Они также охватывают параметры сохранения , которые позволяют Mosquitto сохранять сообщения и информацию о состоянии, например сохраненные сообщения, при перезапусках.

per_listener_settings[ правда | ложь ]
allow_anonymous[ правда | ложь ]
persistence[ правда | ложь ] [ правда | ложь ]
persistence_file file name
persistence_location path
autosave_interval seconds
retain_available
user username

Параметр «Пользователь» позволяет запускать Mosquitto от имени другого пользователя (Linux). По умолчанию он запускается от имени пользователя Mosquitto.

Настройки ограничения сообщений

Доступен ряд настроек ограничения сообщений.

Эти настройки являются глобальными и влияют на всех слушателей. Важными являются:

max_packet_size value
message_size_limit limit-Клиенты MQTT v5
max_inflight_bytes count
max_inflight_messages count
max_queued_bytes count
max_queued_messages count

Настройки аутентификации

Позволяет пользователям подключаться без пароля или принудительно устанавливает аутентификацию по имени пользователя и паролю.

Это можно настроить для каждого слушателя, если per_listener_settings имеет значение true. Значение по умолчанию — true, если нет других параметров безопасности. Если, например, заданы password_file или psk_file, то по умолчанию оно равно false.

allow_anonymous— [ правда | ложь ]

С настройкой разрешения анонимного доступа связаны настройки файла паролей.

password_file file path

Если allow anonymous равно false, то вам нужно создать файл паролей и указать путь к файлу. Это рассматривается в руководстве по использованию аутентификации имени пользователя/пароля  .

Его можно настроить для каждого слушателя отдельно и перезагрузить по сигналу перезагрузки .

Это означает, что вам не нужно перезапускать Mosquitto при добавлении новых пользователей в файл паролей.

Поддержка TLS/SSL

Предоставляется посредством сертификатов или предварительных общих ключей (PSK) и настраивается для каждого слушателя отдельно, не требуя настройки per_listener_settings .

Более подробно это описано в разделе Настройка SSL на Mosquitto.

Ограничения контроля доступа

Вы можете настроить Mosquitto для ограничения доступа клиентов с помощью ACL (списков контроля доступа).

Ограничения списка контроля доступа задаются с помощью настройки:

acl_file file path

и могут быть настроены для каждого слушателя отдельно, если per_listener_settings имеет значение true. Они перезагружаются по сигналу перезагрузки.

Это означает, что изменения, внесенные в списки контроля доступа, можно применять без перезапуска брокера.

Более подробную информацию см. в разделе Использование и тестирование ограничений ACL в Mosquitto.

Настройки для каждого слушателя

Существует множество настроек, которые применяются к слушателям независимо от настройки per_listener_settings .

Прослушиватель по умолчанию

По умолчанию прослушивается порт 1883 , и обычно не требует настройки. Однако вы можете задать адрес, который прослушиватель прослушивает, с помощью настройки bind_address и интерфейс с помощью настройки bind_interface (только для Linux), а также номер порта с помощью настройки port .

Если вы настроите прослушиватель на использование веб-сокетов с помощью настройки протокола, то вы также можете настроить брокера так, чтобы он работал как простой http-сервер, и задать каталог, в котором будут находиться файлы, с помощью настройки http_dir .

Примечание: в руководстве не рекомендуется использовать прослушиватель по умолчанию, если вы настраиваете дополнительные прослушиватели.

Ниже приведен список других настроек, взятых из руководства, который должен дать вам представление о том, что можно настроить.

  • bind_address address
  • bind_interface device
  • http_dir directory
  • listener port [bind address/host]
  • max_connections count
  • maximum_qos count
  • max_topic_alias number- только MQTTv5
  • mount_point topic prefix
  • port port number
  • socket_domain[ ipv4 | ipv6 ]
  • protocol value(MQTT или веб-сокеты)
  • use_username_as_clientid[ правда | ложь ]
  • websockets_log_level level
  • websockets_headers_size size

Настройки моста

Mosquitto можно настроить так, чтобы он работал как мост, и тогда он будет передавать сообщения другому брокеру. Для этого существует целый раздел, посвященный этим настройкам.

Мосты также можно настроить на использование аутентификации и SSL.

Более подробную информацию можно найти в руководстве по настройке Mosquitto в качестве моста .


Запуск Mosquitto – Заметки

При запуске mosquitto для командной строки, если вы не укажете файл конфигурации, ни один не используется. Поэтому

комар комар
-v

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

Если вы устанавливаете mosquitto как службу в Windows, то она начинает использовать mosquitto.conf .

Установка Linux также настраивает брокер Mosquitto на автоматический запуск с использованием файла mosquitto.conf .

Важно: при тестировании mosquitto вам необходимо остановить экземпляр mosquitto, запущенный при загрузке компьютера, а затем запустить свой собственный экземпляр из командной строки.

Редактирование файла конфигурации

При тестировании я бы рекомендовал вам создать файл конфигурации в локальной папке и использовать его.

Я не рекомендую вам копировать файл mosquitto.conf по умолчанию , так как он содержит все возможные настройки, которые закомментированы, и если вы внесете в него изменения, их будет сложно найти.

Однако он очень полезен для документирования, поскольку содержит справку по всем настройкам.

Для редактирования файла можно использовать обычный текстовый редактор.

Если вы его используете, то поместите все свои настройки в начало файла и используйте закомментированный раздел в качестве документации.

Если вы редактируете отдельные разделы, то я создал простой скрипт на Python, который отобразит только незакомментированные настройки из файла.

Когда вы запустите его, вы увидите что-то похожее на снимок экрана ниже.

Структура файла

Не существует навязанной структуры, хотя некоторые настройки должны отображаться раньше других, например, необходимо указать настройку per_listener_settings до создания слушателей.

Структура, которую я использую, показана на рисунке ниже:

Перезапуск Mosquitto или перезагрузка файлов конфигурации

Если вы обновите файлы конфигурации Mosquitto, вы можете перезапустить Mosquitto, чтобы изменения вступили в силу.

Однако в Linux вы также можете перезагрузить файлы конфигурации без перезапуска брокера, отправив сигнал HUP следующим образом:

kill -HUP PID # где PID — это идентификатор процесса, как показано ниже:

Если вы посмотрите на консоль, то увидите, что файлы конфигурации были перезагружены.

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

Я создал таблицу, в которой показаны настройки и условия, требующие перезагрузки, которую вы можете использовать в качестве краткого справочника.

Примеры конфигураций

Лучший способ понять, как использовать файл конфигурации, — это посмотреть несколько примеров. Ниже показаны некоторые типичные конфигурации.

Примечание: я не включаю в эти примеры протоколирование или сохранение, чтобы сделать их краткими и простыми, но я делаю это в своих реальных файлах.

Mosquitto Broker прослушивает несколько портов

Брокер Mosquitto можно настроить на прослушивание нескольких портов одновременно.

Однако эта конфигурация не означает, что у вас есть виртуальные брокеры , поскольку большая часть конфигурации является общей.

 

Пример 1. Прослушивание портов 1883 и 1884.

Раздел Прослушиватель по умолчанию

порт 1883

Раздел Дополнительные слушатели

слушатель 1884

Пример 2. Прослушивание портов 1883 и 1884 без прослушивателя по умолчанию

Раздел Прослушиватель по умолчанию

Раздел Дополнительные слушатели

слушатель 1883
слушатель 1884


Пример 3. Прослушивание портов 1883 и 8883 (SSL)

Раздел Прослушиватель по умолчанию

порт 1883

Раздел Дополнительные слушатели

слушатель 8883

Поддержка SSL/TLS на основе сертификатов

Windows )
cafile c:\mosquitto\certs\ca.crt
keyfile c:\mosquitto\certs\server.key
certfile c:\mosquitto\certs\server.crt

Линукс )

cafile /etc/mosquitto/certs/ca.crt
keyfile /etc/mosquitto/certs/server.key
certfile /etc/mosquitto/certs/server.crt


Example 4- Listen on ports 1883 and WebSockets (SSL)

Section Default listener

port 1883

Section Extra listeners

listener 9001
protocol websockets

Example 5- Listen on ports 1883 and 1884 with authentication

Notes:

Global

per_listener_settings true

Section Default listener
port 1883
Section Extra listeners
listener 1884
allow_anonymous false
password_file file path

Example 6 – Listen for IPV6 traffic only

listener 1883
socket domain ipv6

Example 7 – Listen on a particular IP address (ipv4 only)

listener 1883 192.168.1.23
#note this also disables ipv6

Example 8- Restrict number of connections on default listener to 1000

Global
max_connections 1000


Useful Linux Commands

To stop Mosquitto when running as a daemon:

ps -aux | grep mosquitto


pgrep mosquitto


sudo kill -9 PID (that you get from above command)


If you found this guide useful then perhaps you would like to Buy Me a Coffee

Resources:

  • Mosquitto.conf Manual Page
  • Mosquitto Change log  shows what was changed in what version

Related Tutorials

  • Mosquitto MQTT Bridge-Usage and Configuration
  • Understanding and Configuring Logging – Mosquitto Broker Configuration
  • Mosquitto SSL Configuration -MQTT TLS Security
  • Configuring and Testing MQTT Topic Restrictions
  • Mosquitto Username and Password Authentication -Configuration and Testing
  • How to Install The Mosquitto MQTT Broker- Windows and Linux

Please rate? And use Comments to let me know more

 

 

M osquitto

mosquitto.conf

78 comments

  1.  Andy Jones  says:
  2. October 22, 2024 at 9:56 am

    Hi Steve
    just a follow up to my previous comment, one of those where 5 minutes after hitting send you figure it out. Turns out I had per_listener_settings set to true but forgot to set each listener up with authentication and password !!

    this seems to work Ok

    listener 1883
    allow_anonymous false
    password_file C:\Program Files\mosquitto\UserList.txt

    listener 1884
    allow_anonymous false
    password_file C:\Program Files\mosquitto\UserList.txt

    Thanks again for a great and extremely website.

    Reply

    1.  steve says:

    October 22, 2024 at 12:20 pm

    Andy
    Glad you found the problem.
    Rgds
    Steve

    Reply

  3.  Andy Jones  says:
  4. October 22, 2024 at 9:18 am

    Hi Steve
    Thanks for all your help in this fantastic website, I would never have been able to get as far as I have without it!!

    I have come across something I haven’t been able to resolve and I know you touched on something similar in one of you’re previous responses, but I still cant resolve my own issue.

    I am struggling to add multiple listeners e.g.
    listener 1883
    listener 1884

    It only seems to allow one listening port, that port being the last one in the list, so in this case it would be 1884. If I swapped the order to
    listener 1884
    listener 1883

    It would only monitor on 1883, but I can’t get it to monitor both..

    I can use
    listener 1883
    port 1884

    which will monitor both ports, but again if I add more, only one last listener or the last port is used?

    I’m just wondering if I am misunderstanding how this part works? In summary I thought I’d be able to just add a list of specific listeners to the config and all the ones on the list would be monitored.

    Many thanks

    note I’m using mosquitto version 2.0.18 under Windows.

    Reply

  5.  R.G. says:
  6. May 14, 2024 at 1:21 am

    After having mosquitto running on a Raspberry Pi, I’m trying to get it going on a Ubuntu machine. I ran into an issue that I can’t find any data on.
    A config file made with “sudo nano /etc/mosquitto/yada-yada-yada…” fails with an error reading the config file stating that “#” on line one – that is, the first character – is an invalid configuration variable. After much thrashing around, I used the file command to find out that the config file is in UTF-8 with BOM (byte order marker) bytes first. Using iconv to change the character encoding to UTF-8 without the BOM gets rid of the error.
    So character encoding may matter.
    Now I’m digging through why sudo mosquitto -c /etc/mosquitto/conf.d/yada-yada-yada just starts, but never writes back any of the verbose stuff. I don’t know if that’s an encoding issue or something else. I hope this may help someone.

    Reply

    1.  steve says:
    2. May 14, 2024 at 9:50 am

      Hi
      What is in your config file?
      rgds
      steve

      Reply

    3.  R.G. says:

    May 14, 2024 at 11:08 pm

    Я увлекся удалением пустых строк и комментариев, чтобы файл конфигурации было легче читать, подумал: «Эй, я не пытался…» и провел следующие несколько часов, следуя запутанным кроличьим следам.
    Я знаю приблизительную область, почему это не работает, но не точно. Это проблема с правами доступа, и я проследил путь назад по различным файлам, пользователям и правам доступа и теперь что-то работает. Но я все еще не могу заставить его работать с включенным сохранением и ведением журнала таким образом, который соответствует моему прочтению руководства по настройке mosquitto.
    Все, что мне удалось сделать, это создать нового пользователя «mqtt-user» для резервного пользователя из sudo start, вместе с необходимым домашним каталогом. Если я правильно прочитал, пользователь, которого я пытался использовать («mosquitto»), работает только на локальном хосте; поэтому я изменил пользователей.
    По-прежнему нет функции, и файл mosquitto.log показал невозможность записи pid-файлов и mosquitto.db. Часы возни с chmod, chown, chgrp и т. д. не дали никаких результатов с файлами в /var/(что угодно), несмотря на установку каталогов /var/*/mosquito в rwxrwxrwx. Я до сих пор не понимаю, почему.
    Помещение файлов .db, .pid и .log в домашний каталог mqtt-user наконец позволило запустить эту штуку из команды:
    sudo mosquitto -c /etc/mosquitto/mosquitto.conf -v
    Ваш комментарий верен – многие проблемы с усыновителями связаны с правами доступа.

    Отвечать

    1.  Стив говорит:

    15 мая 2024 г. в 7:52 утра

    В документации расположения постоянных данных и журналов предполагают, что mosquitto запускается как пользователь mosquitto, поскольку разрешения устанавливаются для этого пользователя при установке.
    При тестировании я помещаю все свои файлы в свою тестовую папку и запускаю mosquitto как свой пользователь.
    Если вы хотите использовать расположения из документации для pid, данных о постоянстве и журналов, то вам нужно запустить mosquitto как пользователь mosquitto, указав пользователя в команде.

    sudo -u москит москит myconfig.conf

    Вам может быть полезно это
    http://www.steves-internet-guide.com/tips-for-testing-the-mosquitto-broker-on-linux/
    С уважением,
    Стив

    Отвечать

  7.  Пол Кларк говорит:
  8. 30 января 2024 г. в 14:11

    Привет, Стив.
    Большое спасибо за то, что уделили время созданию этого сайта. У меня есть вопрос, на который я не смог найти ответа. Я радиолюбитель, и у меня есть 2 сети с ячейками, одна на 433 МГц и одна на 868 МГц. Я хочу, чтобы узлы на ячейке 433 видели узлы на ячейке 868 и передавали сообщения между двумя ячейками и наоборот. У
    меня есть сервер MQTT mosqitto, и обе ячейки подписаны на одну и ту же тему «relay», но режимы и сообщения на одной ячейке не отображаются на другой. Есть какие-нибудь предложения?

    Отвечать

    1.  Стив говорит:

    30 января 2024 г. в 14:22

    Используете ли вы файл конфигурации по умолчанию, если да, то смотрите примечание в верхней части этой статьи
    http://www.steves-internet-guide.com/mosquitto-broker/
    Если это не так, можете ли вы публиковать и подписываться на одной сетке и видеть сообщения?
    С уважением,
    Стив

    Отвечать

  9.  секо говорит:
  10. 6 июля 2023 г. в 1:17 дня

    Привет, Стив. Спасибо за твою замечательную работу над этим сайтом, я многому у тебя научился.

    Я разработал проект IoT, для которого мне приходится использовать очень ненадежное интернет-соединение на периферийном устройстве. У меня есть брокер MQTT, работающий на сервере, и я слушаю его с помощью своего скрипта Python. Я разделяю свои данные на фрагменты по 1024 байта, и у меня в среднем получается 20 фрагментов на каждое пробуждение.

    Однако, когда я теряю соединение на периферийном устройстве во время публикации фрагментов, даже если оно подключается обратно через 5-6 секунд, я сталкиваюсь со странной проблемой: в python моя полезная нагрузка «on_connect» срабатывает, но нет сообщения по теме, на которую я подписан. Это невозможно, потому что у меня есть только одна тема, в которую я публикую сообщения.

    Я не смог найти, что изменить в конфигурации, чтобы установить таймер или реализовать какой-то алгоритм для восстановления фрагментов, если это необходимо. Можете ли вы мне помочь в этом?

    Отвечать

    1.  Стив говорит:

    6 июля 2023 г. в 13:22

    Привет,
    это издатель дает сбой при отправке?
    С уважением,
    Стив

    Отвечать

    1.  секо говорит:

    6 июля 2023 г. в 14:25

    Во-первых, извините. Часть, где я сказал: «В python моя полезная нагрузка «on_connect» срабатывает, но сообщения по теме нет», неверна. Я ее отладил.

    Я пытался справиться с этой проблемой больше дня, и сразу после того, как я задал этот вопрос здесь, я решил ее. Речь шла о строке ошибочного кода. На стороне издателя все еще есть некоторые проблемы, но я не уверен, почему они существуют. Как только я разберусь, я обновлю здесь.

    Спасибо также за ваш быстрый ответ!

    Отвечать

  11.  Хеман говорит:
  12. 27 мая 2023 г. в 9:44 утра

    Привет, я настроил свой брокер mqtt Eclipse Mosquitto, следуя вашему руководству.
    Я хочу, чтобы брокер использовал mqtt версии 5, а не версии 3 или 3.1. Как мне это сделать, какие изменения мне нужно сделать в файле conf, чтобы добиться этого?
    Идея моего проекта — сделать фаззер mqtt для версии 5, но я не могу преобразовать версию в 5, так как по умолчанию она установлена ​​на версию 3.1.
    Спасибо.

    Отвечать

    1.  Стив говорит:

    27 мая 2023 г. в 14:15

    Привет,
    никаких изменений на брокере не требуется. Когда вы подключаетесь с помощью клиента, вам нужно указать протокол. В настоящее время все клиенты по умолчанию используют v3.1, если вы не указали его явно.
    С уважением,
    Стив

    Отвечать

    1.  Хеман говорит:

    28 мая 2023 г. в 6:11 утра

    How can Specify it to default my client to use version5 of mqtt? any example is available ? As I will be required to produce valid mqttv5 packets so can I achieve this via PAHO library??
    And like by default 1883 listener port is open..So the same port will also accept mqttv5 requests from the client?

    Reply

    1.  steve says:

    May 28, 2023 at 8:22 am

    It depends on your client here is the configuration for python
    http://www.steves-internet-guide.com/python-mqtt-client-changes/
    what client are you using?
    Rgds
    Steve

    Reply

    1.  Heman says:

    May 28, 2023 at 4:42 pm

    I am using Python Paho client only.
    import paho.mqtt.client as mqtt
    This is my import statement.
    Thank you for sharing the link.
    Regards.

  13.  Givi Soltani says:
  14. April 15, 2023 at 5:07 pm

    Hi Steve,
    I have followed your tutorials and I am making progress. However, I tried to use multiple “ports” as you mentioned in Section Extra listeners: listener 1883; listener 1884 and received the following errors, so I only use “port 1883” now, which seems to be working. Any suggestions or ideas as what I maybe missing here?
    Client (null) sending CONNECT
    Client (null) received CONNACK (5)
    Connection error: Connection Refused: not authorised.
    Error: The connection was refused.

    Thanks,

    Givi

    Reply

    1.  steve says:

    April 16, 2023 at 8:25 am

    Hi
    It is an authorisation issue. The allow anonymous an be used before any listener statement an it will apply to all listeners or in each listener statement in which case it will apply to that listener.
    apply to all

    allow_anonymous
    listener 1883
    listener 1884
    or
    only allow anonymous on 1883
    listener 1883
    allow_anonymous
    listener 1884

    Rgds
    Steve

    Reply

    1.  Givi Soltani says:

    April 26, 2023 at 4:46 pm

    Hi Steve,
    Followed your instructions and my ACLFILE and PASSWD files working just right on multiple ports. Now, I would like to move on to SSL/TLS and port 8883. Would you please let me know which lines/statements in “mosquitto.conf” file should be commented out and which one should be uncommented to accommodate that?

    Reply

    1.  steve says:

    April 26, 2023 at 4:57 pm

    Hi
    From you question I gather you are using the mosquitto.conf file with all of the settings commented out.
    I don’t recommend doing that.rename it as it si usful to keep so you can see all of the possible settings. Create a new one and add in the entries and save it as mosquitto.conf.
    Below is an example file:

    # Place your local configuration in /etc/mosquitto/conf.d/
    #
    # A full description of the configuration file is at
    # /usr/share/doc/mosquitto/examples/mosquitto.conf.example

    persistence true
    persistence_location /var/lib/mosquitto/

    log_dest file /var/log/mosquitto/mosquitto.log

    include_dir /etc/mosquitto/conf.d
    log_type error
    log_type notice
    log_type information
    log_type debug
    log_type websockets

    connection_messages true
    log_type all
    log_dest stdout
    allow_anonymous true

    listener 1883
    listener 8883

    cafile /etc/mosquitto/certs/ca.crt
    #capath /home/openest/certs/ca

    # Path to the PEM encoded server certificate.
    certfile /etc/mosquitto/certs/server.crt

    # Path to the PEM encoded keyfile.
    keyfile /etc/mosquitto/certs/server.key

    Reply

  15.  juergen says:
  16. February 16, 2023 at 5:04 pm

    I’m trying to run mosquitto on my Ubuntu Laptop. The system finally installed Mosquitto 2.0.15 and I’m using ../conf.d/default.conf which (for the beginning) only specifies:
    listener 1883
    listener 8883
    allow anonymous true
    The Laptop is located behind a FritzBox which I can access via my personal MyFritz-URL.
    There is no problem to connect Mosquitto from another Laptop in the LAN with a Python script addressing my MyFritz-URL.
    However I’m unable to connect Mosquitto from a Smartphone App (MyMQTT) if I use the MyFritz-URL !!!
    Note to mention that I can connect the broker if I specify the actual IPv4 address (which changes day by day) . Also I’m able to connect other (external) brokers with the Smartpone-App (either via port 1883 or via SSL-port 8883).
    Finally I have to mention that my ufw firewall allows Anywhere-access to ipv4 and ipv6 on both ports.

    У вас есть какие-нибудь идеи? Вы знаете кого-нибудь еще, у кого были проблемы с подключением приложения для смартфона к Mosquitto в FritzBox-LAN?
    Заранее спасибо
    Юрген

    Отвечать

    1.  Стив говорит:

    16 февраля 2023 г. в 17:38

    Привет,
    ты включил переадресацию портов на внешнем маршрутизаторе?
    С уважением,
    Стив

    Отвечать

    1.  Райхардт говорит:

    17 февраля 2023 г. в 12:03

    Привет, Стив
    , да, переадресация портов включена в FritzBox…

    Отвечать

    1.  Стив говорит:

    17 февраля 2023 г. в 14:01

    Включили ли вы веб-сокеты на брокере Mosquitto или приложение для смартфона использует только MQTT+SSL.
    С уважением,
    Стив.

    Отвечать

    1.  Райхардт говорит:
    2. 17 февраля 2023 г. в 17:52

      Приложение для смартфона из PlayStore просто идет с портом 1883, поэтому я предполагаю, что оно просто использует MQTT без SSL.
      У меня также есть собственное приложение для смартфона, где я использую Paho Client со следующим кодом Kotlin:
      class MQTTClient(context: Context?,
      serverURI: String,
      clientID: String = “”) {
      private var mqttClient = MqttAndroidClient(context, serverURI, clientID)
      private val defaultCbConnect = object : IMqttActionListener {
      override fun onSuccess(asyncActionToken: IMqttToken?) {
      Log.d(this.javaClass.name, “(Default) Connection successful”)
      }

      override fun onFailure(asyncActionToken: IMqttToken?, exception: Throwable?) {
      Log.d(this.javaClass.name, “Connection failure: ${exception.toString()}”)
      }
      }

      Этот код всегда дает сбой в onFailure(), выдавая следующую трассировку стека:
      java.net.ConnectException: failed to connect to j9g.myfritz.net/2a05:4540:6f00:8899::1c9e (port 1883) from /2a05:4540:6f1c:c200:8a5:8b3a:5bb1:f8f1 (port 38242) after 30000ms: isConnected failed: ECONNREFUSED (Connection denied)
      (адрес брокера и реальные адреса IPv6 были изменены…)

    3.  Стив говорит:

    17 февраля 2023 г. в 19:19

    Отказ в подключении обычно означает неправильный порт или IP-адрес или заблокированный порт. Можете связаться со мной на странице ask steve, и я рассмотрю это подробнее.
    С уважением,
    Стив

  17.  импван говорит:
  18. 16 июля 2022 г. в 21:33

    Опечатка в статье?
    В разделе «Настройки аутентификации», где написано «Если allow_anonymous имеет значение true, то вам необходимо создать файл паролей» — наверняка должно быть «..is false..»?

    Отвечать

    1.  Стив говорит:

    17 июля 2022 г. в 15:26

    Хорошо подмечено, я исправил. Спасибо,
    Стив.

    Отвечать

  19.  Фредерик Ван де Стене говорит:
  20. 27 марта 2022 г. в 20:40

    привет,

    Я хочу изменить файл mosquitto.conf, но могу открыть его только в режиме чтения.
    Что я могу сделать?

    Я не могу ничего изменить в файловой системе.

    Отвечать

  21.  Фредерик Ван де Стене говорит:
  22. 27 марта 2022 г., 17:59

    привет,

    Я хочу изменить файл mosquitto.conf, но могу открыть его только в режиме чтения.
    Что я могу сделать?

    Отвечать

    1.  Стив говорит:

    27 марта 2022 г. в 19:07

    В Linux я копирую его в свою домашнюю папку, а затем меняю разрешения на него. Если вы не можете этого сделать, то просто скопируйте содержимое и вставьте его в новый файл, а старый файл удалите. После того, как вы закончите, просто sudo cp mosquitto.conf /etc/mosquitto/mosquitto.conf

    При тестировании я использую файл conf в локальной папке и запускаю mosquitto вручную с ключом -c.
    С уважением,
    Стив

    Отвечать

    1.  Фредерик Ван де Стене говорит:
    2. 27 марта 2022 г. в 20:44

      Спасибо за ответ.

      Но я даже не могу удалить файл, получаю сообщение «доступ запрещен».

      Отвечать

    3.  Фредерик Ван де Стене говорит:

    27 марта 2022 г. в 21:03

    У меня Debian запущен на моем PI, может быть в этом проблема?
    Как мне войти как владелец?

    Отвечать

    1.  Стив говорит:

    28 марта 2022 г. в 14:12

    Вы пробовали использовать команду sudo?
    Спасибо,
    Стив.

    Отвечать

  23.  Марк говорит:
  24. 6 февраля 2022 г. в 17:00

    Я настраивал тестовую сеть с помощью Mosiquitto Broker, и у меня есть устройство, публикующее компоненты даты и времени (гг-мм-дд-чч-мм-сс) в теме «DCNET/DT/» и подписывающееся на то же самое с помощью устройства и MQTT Explorer. Каждые 30 секунд Broker приостанавливает пересылку сообщений на 21 секунду, затем передает приостановленные сообщения и синхронизируется с текущей публикацией устройства. Затем у меня есть 30 секунд публикации и подписки в реальном времени, а затем пауза повторяется. Может ли это быть одной из настроек конфигурации Broker?

    С уважением
    Марк

    Отвечать

    1.  Стив говорит:

    6 февраля 2022 г. в 17:14

    Нет, брокер не останавливается, происходит что-то еще. Брокер немедленно повторно опубликует сообщение, и нет настройки, которая бы запретила ему это делать.
    Я бы взглянул на консоль брокера и посмотрел, что происходит.
    С уважением,
    Стив

    Отвечать

  25.  Padir1 говорит:
  26. 17 ноября 2021 г. в 16:51

    Привет, Стив! Мы пытаемся подключить наш Raspberry Pi к нашему приложению IOS Swift и испытываем трудности с поиском правильного IP-адреса для подключения к Pi при попытке настроить MQTT. Мы перепробовали все IP-адреса, предоставленные командами ifconfig, и не смогли. Мы даже пытались настроить собственный IP-адрес на самом Pi, но он все еще не взаимодействует с приложением. Есть ли у вас какие-нибудь идеи?

    Отвечать

    1.  Стив говорит:
    2. 17 ноября 2021 г. в 18:53

      Пи выступает в качестве брокера или клиента?

      Отвечать

    3.  Джонни Грэм говорит:

    20 ноября 2021 г. в 17:55

    The latest version of Mosquito changed the default behaviour. See https://mosquitto.org/documentation/migrating-to-2-0/
    By default you can’t connect from an external host. To get the equivalent behaviour as the default used to be, you must put in your config:
    listener 1883
    allow_anonymous true

    Reply

    1.  Edd says:

    December 6, 2021 at 2:32 pm

    I have been tripping over this for weeks trying to connect. Thank you!

    Reply

  27.  Juergen Grete says:
  28. September 18, 2021 at 3:10 pm

    Hi Steve,
    I had problems configuring tls support and I found that tabs are not a good idea in mosquitto.conf
    mosquitto wasn’t able to find the keyfile nor the server.crt. After hours of pulling hair I replaced tabs by
    spaces – et voila …
    This might be of interrest for all using tabs to make conf files looking a little bit better.
    I used source code from github, version 2.0.12

    Thanks for your great work!
    Juergen

    Reply

  29.  sun says:
  30. May 3, 2021 at 9:04 am

    hi steve,i want to add user “nisun”,but it is say C:\mosquitto>mosquitto_passwd -c ./pwfile.examplt “nisun”
    Password: Error: Empty password.,something wrong?please help me,thank you.

    Reply

    1.  steve says:

    May 3, 2021 at 4:41 pm

    Looks like a simple typo

    Reply

    1.  sun says:

    May 4, 2021 at 8:05 am

    if i use C:\mosquitto>mosquitto_passwd -c -b ./pwfile.example “nisun” “password”,it is ok,so,if win7 not support?or bug?

    Reply

    1.  steve says:

    May 4, 2021 at 3:18 pm

    Hi
    I had problems I remember running those tools on windows xp I haven’t used them on win7 as I tend to use linux.
    rgds
    steve

    Reply

    1.  sun says:

    May 5, 2021 at 12:49 am

    good morning, steve,thank you for your help,but xp is too old.so i find the better way to run,TKS.bye!

  31.  Ian Stewart says:
  32. March 20, 2021 at 12:22 pm

    Sorry the last message didn’t keep the formatting

    Reply

    1.  steve says:

    March 20, 2021 at 12:43 pm

    Hi
    Version 2 has security changes and only listens on the localhost you need to create a listener in the config file

    listener 1883

    Reply

    1.  Ian says:

    March 21, 2021 at 5:52 pm

    Hey Steve,

    Thanks a lot

    Reply

  33.  Ian Stewart says:
  34. March 20, 2021 at 12:21 pm

    Hello Steve,

    I recently updated mosquitto 2.0.9 on my RaspPI running DietPi v7.0.2 without change anything else I’m getting Error: Address already in use.

    Before this it was running fine accepting external connections, I definitely didn’t change it to local only mode.

    Any ideas?

    Regards
    Ian

    1616241556: запуск mosquitto версии 2.0.9
    1616241556: использование конфигурации по умолчанию.
    1616241556: запуск только локального режима. Подключения будут возможны только с клиентов, работающих на этой машине.
    1616241556: создание файла конфигурации, определяющего прослушиватель для разрешения удаленного доступа.
    1616241556: открытие прослушивающего сокета ipv4 на порту 1883.
    1616241556: ошибка: адрес уже используется
    1616241556: открытие прослушивающего сокета ipv6 на порту 1883.
    1616241556: ошибка: адрес уже используется

    Отвечать

  35.  Стейси говорит:
  36. 9 марта 2021 г. в 15:34

    В начале поста указан каталог для Linux, каталог - /etc/mosquito, должен быть /etc/mosquitto? Позже в посте упоминается ссылка /etc/mosquitto/mosquitto.conf.

    Отвечать

    1.  Стив говорит:

    10 марта 2021 г. в 16:30

    Извините за опечатку. Спасибо за это,
    С уважением,
    Стив.

    Отвечать

    1.  Киран Шетти говорит:

    22 марта 2021 г. в 6:54 утра

    Привет, Стив.
    Та же проблема с моим телефоном на Android. Я не могу подключиться к Mosquitto Broker
    «—1616241556: запуск версии mosquitto 2.0.9
    1616241556: использование конфигурации по умолчанию.
    1616241556: запуск только локального режима. Подключения будут возможны только от клиентов, работающих на этой машине.
    1616241556: создание файла конфигурации, определяющего прослушиватель для разрешения удаленного доступа.
    1616241556: открытие прослушивающего сокета ipv4 на порту 1883.—»

    пожалуйста, направьте меня

    Спасибо

    Отвечать

    1.  Стив говорит:

    22 марта 2021 г. в 8:55 утра

    Привет
    , похоже, проблема версии 2. Нужно добавить эти строки в конфигурацию
    прослушивателя 1883
    allow_anonymous true.
    Взгляните на введение в учебник здесь
    http://www.steves-internet-guide.com/mosquitto-broker/

    Отвечать

  37.  Винч  говорит:
  38. 16 декабря 2020 г. в 22:34

    Привет

    на стороне клиента мне нужно запустить
    rtl_433 -F json -M utc | mosquitto_pub -h 10.18.42.175 -p 1883 -d -t iot12-rpi3b-gw-433 -l

    как только я закрываю терминал, сервер с Node Red не получает никаких сообщений.
    как/где добавить информацию, которая будет вызываться при перезапуске клиента или закрытии терминала?

    и как изменить настройку QoS на 1 или 2 на стороне клиента?

    хорошего дня,
    Винч

    Отвечать

    1.  Стив говорит:

    17 декабря 2020 г. в 17:36

    Не совсем уверен, что ты делаешь. Используй страницу ask steve и дай мне знать более подробно

    Отвечать

  39.  Сайчаран говорит:
  40. 19 ноября 2020 г. в 5:24 утра

    Привет,
    я новичок в концепции MQTT и пытаюсь использовать RaspberryPi в качестве издателя для связи. Я использую свою машину Linux с IP-адресом 10.60.62.125 для запуска брокера mosquitto. И код издателя работает на RaspberryPi, а код подписчика работает на моей машине Linux. В коде издателя я пытаюсь подключить клиента к «10.60.62.125», что не работает и через некоторое время выдает ошибку превышения времени ожидания соединения. Так какой же IP-адрес мне нужно указать в коде издателя? Есть ли помощь?

    Отвечать

    1.  Стив говорит:

    19 ноября 2020 г. в 10:18 утра

    Привет,
    вы используете правильный адрес. Однако я заметил, что вы используете диапазон 10.xxx для своей сети, что необычно. Может ли машина, с которой вы пытаетесь подключиться (клиент), пинговать адрес 10.60.62.125?
    С уважением,
    Стив

    Отвечать

  41.  Сафир ТажаПаданнаил говорит:
  42. 27 мая 2020 г. в 7:51 утра

    Привет, Стив!

    Я большой новичок в этом деле, теперь я создал свой сертификат с моим локальным доменным именем, но когда я запускаю свой клиент, который создан в JavaScript, он возвращает ошибку, например: Не удалось установить соединение WebSocket с 'wss://innocube:9001/mqtt': Ошибка при установлении соединения: net::ERR_NAME_NOT_RESOLVED

    Отвечать

    1.  Стив говорит:

    27 мая 2020 г. в 13:33

    Привет,
    это похоже на ошибку разрешения имени, а не mqtt.

    Отвечать

  43.  Барри Лафт говорит:
  44. 6 апреля 2020 г. в 23:37

    Извините за простой вопрос. Я новичок, пытающийся заставить работать помощника по дому. Очень утомительный процесс.

    Я прошил tasmota на Sonoff basic и пытаюсь заставить HA распознать его. Я установил Mosquito на HA, но когда я пытаюсь настроить MQTT, я получаю ошибку «невозможно подключиться к брокеру».

    Я перепробовал все адреса, которые смог найти, и понятия не имею, как и где найти адрес брокера.

    Отвечать

    1.  Стив говорит:
    2. 7 апреля 2020 г. в 12:38

      На машине, на которой запущен Mosquitto, откройте командную строку и введите
      ipconfig (Windows) или ifconfig (Linux). Она покажет вам IP-адрес
      rgds
      steve.

      Отвечать

    3.  Мартин говорит:

    20 мая 2020 г. в 19:37

    I set up Sonoff PWRR2 with HA today. Just check that you have done these steps:
    – set up mosquito to use passwords:
    allow_anonymous false
    password_file /etc/mosquitto/passwd
    in mosquito.conf or any other config file in the conf.d subfolder
    – create a user with password
    sudo mosquitto_passwd -c /etc/mosquitto/passwd my_username
    – test your config by publishing while you have a subscription running (assuming you are executing on same machine where mosquito is running)
    mosquitto_sub -h localhost -t test -u my_username -P my_password
    mosquitto_pub -h localhost -t test -m “hello World!” t -u my_username -P my_password
    – configure tasmota to use Mqtt, set ip, port (1883), …, account:my_username, my_password, topic=my_topicname. (my_topicname must be unique for each device if you have several tasmotas)
    – activate automatic discovery on your tasmota:
    mosquitto_pub -h localhost -t cmnd/my_topicname/SetOption19 -m “1” -u my_username -P my_password
    – add mqtt integration to HA, fill in ip, port (1883), my_username,my_password
    The tasmota entities will appear on the MQTT tile of the integrations page

    Reply

  45.  Vijay says:
  46. February 12, 2020 at 11:16 am

    Hi Steve,

    I am working on SCADA and it contains inbuilt MQTT drivers, and I am connecting with AWS server by using MQTT, So here mosquitto broker is running fine in services but I am little doubt on config file, the config file is commented but where I have to enter the broker details and port details exactly in the config file, can you please send me some example config file for my understanding purpose.

    Reply

    1.  steve says:

    February 12, 2020 at 5:23 pm

    Hi
    You don’t normally need to enter the IP address of the broker in the conf file as it listens on all ip addresses assigned to the machine the broker runs on by default.
    When you add extras listeners you add them normally just using the port number.But you can add the ip address using
    # listener port-number [ip address/host name]
    e.g
    listener 1884 192.168.1.68

    For the default listener use
    bind_address ip-address/host name
    e.g
    bind_address 192.168.1.68

    rgds
    Steve

    Reply

  47.  Anil says:
  48. January 25, 2020 at 10:06 am

    Привет, Стив,
    я обновил файл конфигурации для tls, но mosquitto все равно не слушает порт 8883, когда я даю команду «mosquitto -c mosquitto.conf». Он ничего не выполняет.

    Отвечать

    1.  Стив говорит:

    25 января 2020 г. в 16:09

    Можете ли вы воспользоваться страницей «Спросите Стива» и отправить мне копию файла
    ? Спасибо,
    Стив.

    Отвечать

  49.  Аргья говорит:
  50. 4 января 2020 г. в 1:21 дня

    Привет, Стив,
    спасибо за этот пост. Не могли бы вы поделиться руководством или инструкцией по созданию собственного брокера MQTT с помощью Python? Спасибо.

    Отвечать

    1.  Стив говорит:

    4 января 2020 г. в 15:58

    Привет,
    вот один из них, который используется для тестирования:
    https://github.com/eclipse/paho.mqtt.testing
    Спасибо,
    Стив.

    Отвечать

  51.  Леон  говорит:
  52. 24 мая 2019 г. в 7:30 утра

    пытаюсь запустить ваш скрипт на Raspi:

    import paho.mqtt.client as paho
    ImportError: Отсутствует модуль с именем 'paho'

    это после того, как я успешно установил его:
    pip install paho-mqtt

    Отвечать

    1.  Стив говорит:

    24 мая 2019 г. в 8:22 утра

    Если вы установили его, он может быть установлен под другой версией Python, но это необычно для PI.
    Посмотрите здесь
    http://www.steves-internet-guide.com/python-notes/

    Отвечать

  53.  Тинг говорит:
  54. 11 февраля 2019 г. в 10:52 вечера

    Привет,
    у меня пропали некоторые данные при подключении устройств IoT к mosquitto, который я установил на Linux. Но если я подключаю устройства к «m2m.eclipse.org» или «test.mosquitto.org», никаких данных не пропадает.
    Не знаете, что тут происходит? Все настройки для mosquitto установлены по умолчанию на моем Linux.
    Большое спасибо!

    Отвечать

    1.  Стив говорит:

    12 февраля 2019 г. в 9:58 утра

    Я подозреваю, что проблема в локальной сети. Вы запустили mosquitto в режиме verbose, чтобы вы могли быть сообщениями.
    rgds
    steve

    Отвечать

  55.  Остин говорит:
  56. 20 ноября 2018 г. в 6:06 утра

    Привет, я настраиваю MQTT на сервере Windows. Как мне изменить номер порта в Windows и сделать MQTT доступным для публичного адреса?

    Отвечать

    1.  Стив говорит:

    21 ноября 2018 г. в 20:40

    Вам необходимо отредактировать файл mosquitto.conf или запустить mosquitto из командной строки с помощью
    mosquitto -p 1884
    , чтобы запустить mosquitto на порту 1884.

    Отвечать

  57.  unnakb говорит:

20 июня 2018 г. в 10:43 утра

Я использую Windows 10. Мне удалось успешно запустить брокер Mosquitto для прослушивания на 1883, следуя вашему руководству. Я также протестировал соединение с помощью mosquitto_pub и mosquitto_sub. Когда я попытался проверить TLS, я изменил файл mosquitto cfg для прослушивания на 8883 и сертификаты сервера. Затем попытался перезапустить Mosquitto в службах (локальных), но он выдает ошибку «Служба брокера Mosquitto на локальном компьютере была запущена, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами». В командной строке Windows я также попробовал
sc start «mosquitto», а затем sc query «mosquitto». Запросы sc показывают STATE как 2 START_PENDING, а затем STATE как 1 STOPPED. Есть ли какая-либо причина, по которой брокер Mosquitto не может быть запущен?

Отвечать

  1.  Стив говорит:

20 июня 2018 г. в 12:14

Я подозреваю, что в файле конфигурации есть ошибка, или он не может его найти. Вы пробовали запустить командную строку как mosquitto -c configfile, это может дать вам больше информации.

Отвечать

Оставить ответ

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *

Комментарий * 

Имя * 

Электронная почта * 

Веб-сайт 

Опросы

Вас интересует

  •  Сети Лора
  •  Сети Лораван
  •  lorawan и MQTT

Посмотреть результаты

Привет, меня зовут Стив, и добро пожаловать на мой сайт, где вы можете узнать, как создавать системы Интернета вещей с использованием MQTT.



 
MyTetra Share v.0.65
Яндекс индекс цитирования