|
|||||||
Mosquitto 2.0
Время создания: 10.12.2024 12:27
Автор: alensav
Текстовые метки: Mosquitto 2.0
Раздел: MOSQUITT_SETTING
Запись: alensav/MyTetra2/main/base/1733822866yenj4r8iqv/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Миграция с 1.x на 2.0
Mosquitto 2.0 вносит ряд изменений в поведение брокера, о которых необходимо знать новым пользователям и которые объясняются в этом документе. Если вы упаковываете Mosquitto для распространения, см. раздел «Упаковка и распространение». Если вы являетесь автором плагина, см. раздел «Плагины». Изменения в поведении слушателя Способ настройки прослушивателей в Mosquitto был изменен, чтобы помочь конечным пользователям сделать осознанный выбор в вопросах безопасности, а не просто полагаться на ранее весьма снисходительные настройки по умолчанию. Прослушиватель без конфигурации Если Mosquitto запущен без файла конфигурации или без настройки каких-либо прослушивателей, он теперь будет привязан к интерфейсам обратной связи 127.0.0.1 и/или ::1. Это означает, что будут возможны только соединения с локального хоста. Этот режим позволяет проводить автоматическое или ручное тестирование на локальной машине без необходимости в файле конфигурации. Только в этом режиме анонимные/неаутентифицированные пользователи разрешены по умолчанию. Это относится к вам, если вы управляете своим брокером аналогично одному из следующих примеров:
Если вы используете этот режим и хотите, чтобы клиенты подключались с удаленной машины, вам потребуется использовать файл конфигурации: слушатель 1883 # Обратите внимание, что по умолчанию анонимный доступ невозможен. Эта конфигурация привязывает прослушиватель для порта 1883 к интерфейсу 0.0.0.0или ::по умолчанию, т.е. разрешает соединения на всех интерфейсах. Тем не менее, можно вручную привязаться к определенному интерфейсу, например listener 1883 192.168.1.1. Аутентификация требует настройки Теперь все слушатели требуют настройки аутентификации. Это за исключением случая, когда конфигурация слушателя не указана, и, следовательно, слушатель привязан к интерфейсу обратной связи, как описано выше. Это означает, что allow_anonymousтеперь по умолчанию установлено значение false. Если у вас в настоящее время запущен брокер, у которого в файле конфигурации настроен прослушиватель, но нет другой настроенной аутентификации и явных allow_anonymousнастроек, то ваши клиенты не смогут подключиться после обновления до Mosquitto 2.0. Есть три варианта:
Изменения версии протокола TLS прослушивателя Опция прослушивателя tls_versionтеперь определяет минимальную версию протокола TLS для использования, а не точную версию. Например, настройка tls_version tlsv1.2разрешит как TLS v1.2, так и TLS v1.3. Поддержка TLS v1.0 отключена. Смешивание файлов конфигурации с -p Если вы настраиваете прослушиватель в файле конфигурации и-p 1883 одновременно используете eg в командной строке, вам потребуется добавить все прослушиватели в файл конфигурации, поскольку такое поведение больше не поддерживается — порт, указанный в командной строке, будет игнорироваться. Если у вас есть такой файл конфигурации: слушатель 1883 # ... И запустите Mosquitto вот так:mosquitto -c mosquitto.conf -p 1884 Тогда вам следует вместо этого запустить Mosquitto как mosquitto -c mosquitto.confи использовать файл конфигурации с обоими слушателями в: слушатель 1883 # ... слушатель 1884 # ... Использование root/привилегированного пользователя В версиях до 2.0, если Mosquitto запускался от имени пользователя root, он загружал сертификаты TLS, запускал прослушиватели и начинал ведение журнала, прежде чем переходить к непривилегированному пользователю Mosquitto. Это поведение изменилось. В версии 2.0 Mosquitto загружает файл конфигурации и немедленно переходит к настроенному непривилегированному пользователю, который по умолчанию является mosquitto. Если mosquittoнастроенный вручную пользователь недоступен, брокер попытается перейти к nobodyпользователю. Это означает, что единственными файлами, к которым Mosquitto будет иметь доступ как root, являются файлы конфигурации, и, следовательно, любые другие файлы, к которым Mosquitto необходимо получить доступ или записать их, должны быть доступны непривилегированному пользователю. В частности, тем, кто использует сертификаты TLS от Lets Encrypt, нужно будет что-то сделать, чтобы Mosquitto мог получить доступ к этим сертификатам. Пример сценария развертывания обновления, который поможет в этом, находится по адресу misc/letsencrypt/mosquitto-copy.sh . По-прежнему возможно принудительно запустить Mosquitto от имени root, но делать это настоятельно не рекомендуется. Теперь опция pid_fileвсегда будет пытаться записать pid-файл, независимо от того, -dиспользуется ли аргумент при запуске брокера. Значение параметра max_queued_messagesувеличено со 100 до 1000 по умолчанию и теперь также применяется к сообщениям QoS 0 при подключении клиента. Компоненты, предоставляемые Mosquitto, можно разделить на следующие категории: Библиотеки C/C++ для создания MQTT-клиентов.
Клиенты командной строки MQTT общего назначения. Они зависят от libmosquitto.so.1.
Основное предложение проекта — брокер Mosquitto, а также сопутствующие утилиты и плагины.
Изменения:
mosquitto_ctrl и mosquitto_dynamic_secuity.so требуют библиотеку cJSON. Если она не обнаружена или нежелательна, эти функции можно отключить. Mosquitto 2.0 представляет новый интерфейс плагина, который должен быть проще в разработке и более легко расширяемым. Отдельный документ будет описывать новый интерфейс плагина. Если у вас есть существующий плагин, который следует рекомендациям в mosquitto_plugin.h, то он продолжит работать с Mosquitto 2.0, если только он не скомпилирован с использованием заголовочных файлов Mosquitto 2.0, которые содержали ошибку в документации. Чтобы изменить плагин так, чтобы он работал как в Mosquitto 1.6, так и в Mosquitto 2.0, вам следует изменить экземпляр mosquitto_auth_plugin_versionтак, чтобы он возвращал версию интерфейса плагина, которую вы поддерживаете, |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|