Добрый день!
Прошу помощи. Проблема с паролем на Mosquitto. Знаю точно что стоит). Поставил давненько по какой-то инструкции, точно не по этой Установка пароля на MQTT брокер потому что в соответствующих файлах нет записей. Но, это пункт сделан
Далее в файле /etc/mosquitto/conf.d/10listeners.conf установите параметр allow_anonymous false (по умолчанию true).
Так вот, хочу поменять логин и пароль, и не могу найти конфигурацию файла с паролем. Проверил все файлы и линки на файлы в папке /etc/mosquitto/. Не подскажите где могут быть эти файлы или как поменять логин и пароль? Спасибо!
Добрый день.
Покажите полностью содержимое данного файла.
Обычно это /etc/mosquitto/passwd/default.conf
. В нём хранится список пользователей и их хэшированные пароли, разделенные двоеточием.
Удалить пользователя можно командой:
mosquitto_passwd -D /etc/mosquitto/passwd/default.conf username
Так же не забываете перезапускать mosquitto, чтобы изменения вступили в силу?
systemctl restart mosquitto
Спасибо за ответ!
В том то и дело. Я по файлам и по линкам там везде полазил и пооткрывал все что находится в папке Mosquitto.
Вот содержимое этого файла: /etc/mosquitto/conf.d/10listeners.conf
#change 0.0.0.0 to to limit listener to localhost
listener 1883 0.0.0.0
# example:
#listener 1883 0.0.0.0
#change 0.0.0.0 to 127.0.0.1 to limit listener to localhost
listener 18883 0.0.0.0
protocol websockets
Такой папки нет. А есть файл passwd.conf, он находится в корне папки /etc/mosquitto и он пустой
Соответсвенно, если нет папки и файла, то команда не удалит юзера…Вот в этом и вопрос был. Типа, как найти файл, место, папку, куда отправлять команду. А вообще пароль то стоит. Я через MQTT Explorer соединяюсь с mosquitto брокером на WB6 ( IP:порт, username, password) и смотрю топики.
Не, ну это понятно, я еще стопаю watchdog
Спасибо заранее
Возможно вы когда-то ставили и снимали пароль на веб-интерфейс, в следствии чего привели файл к данному виду.
/etc/mosquitto/passwd/
— симлинк на /mnt/data/etc/mosquitto/passwd
Попробуйте посмотреть файл здесь. Если его нет, то попробуйте сделать следующее:
Создайте симлинк на passwd
если его нет:
ln -s /mnt/data/etc/mosquitto/passwd /etc/mosquitto/passwd
Создайте пустой файл если его нет:
touch /etc/mosquitto/passwd/default.conf
Приведите файл /etc/mosquitto/conf.d/10listeners.conf
к виду:
listener 1883
allow_anonymous true
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf
listener 18883
protocol websockets
allow_anonymous true
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf
Приведите файл /etc/mosquitto/acl/default.conf
к виду:
topic readwrite #
topic readwrite $SYS/#
Перезапустите mosquitto:
systemctl restart mosquitto
Далее попробуйте снова поставить пароль по инструкции. Отпишитесь о результате.
Я там писал что искал везде, ну и по этому пути тоже. Каталога нет…
Я так понимаю, что нужно сначала создать каталог, потом файл, а потом линк. Сделал
Нет ни каталога ни файла такого
/etc/mosquitto/acl/default.conf
Есть просто файл
/etc/mosquitto/acl.conf
он был пустой. я его изменил с вашими рекомендациями
Привел, перегрузил москито. Не поднялся. Ошибки.
Job for mosquitto.service failed because the control process exited with error code.
See “systemctl status mosquitto.service” and “journalctl -xe” for details.
Я так понимаю, что у меня с вами разные москито…Ну, конфиг каталоги точно разные.
Так как нет такого каталога
acl_file /etc/mosquitto/acl/default.conf
То просто изменил acl/default.conf
НА acl.conf
. Все равно ошибки запуска. Как оказалось эти настройки есть в файле
/etc/mosquitto/conf.d/auth.conf
Содержание файла
acl_file /etc/mosquitto/acl.conf
password_file /etc/mosquitto/passwd.conf
allow_anonymous true
allow_anonymous_localhost true
Попробовал закоментировать эти сторчки в этом файле. Все равно москито не поднялся. В итоге, в файле /etc/mosquitto/conf.d/10listeners.conf
закоментировал конфликутющие стоки и москито завелся))) Через MQTT Explorer заходит уже без пароля.
Тогда следующий вопрос. Правильно ли я сделал, не будет ли это мешать работе брокера в дальнейшем?
Пароль поставил по инструкции. Работает
Спасибо!
Изминение/дополнение
После этих всех изминений заметил что очень долго перегружается москито
Что-то я совсем запутался в этих паролях. Ставлю пароль по инструкции заходит через MQTT Explorer с настройками логин и пароль
, НО, на WEB интерфейсе нет устройств. Захожу в Настройки/Веб-интерфейс
устанавливаю настроенные параметры - заходит в устройства, но нет Домашней страницы, нет Виджетов, нет вкладки Панели, нет Конфигурационных файлов.
Потом, для проверки, как только сношу юзера в файле acl.conf
и соответственно в Настройки/Веб-интерфейс
все работает. все на месте…Но, в MQTT Explorer не возможно без юзера/пароля. До этого как-то был ( root/wirenboard) но, в Настройки/Веб-интерфейс
было пусто. Сейчас пробую поставить тот который был (root/wirenboard) с ним не пускает. Только пустые поля…но так не сохраняет настройки.
Сейчас оставил без пароля. москито перегружается так же как и было ДО манипуляций…но с ExplorerОМ так и не получилось
Как вернуть все в зад, и вообще в этом разобраться? Спасибо
Привести конфигурационные файлы в дефолтное состояние. Для понимания, основной конфигурационный файл — mosquitto.conf
. Он находится в /etc/mosquitto
. В нем с помощью параметра include_dir
определяются каталоги с внешними конфигурационными файлами, в том числе файл со слушателями, определяемые параметром listener
.
Параметр allow_anonymous
определяет — разрешено ли подключаться клиентам, которые подключаются без указания имени пользователя (true
) или нет (false
).
В acl_file
указывается путь к файлу со списком управления доступом. Все что указано после user <username>
— будет применимо только для указанного пользователя, а всё что до этой строки или при её отсутствии — для всех клиентов при условии что allow_anonymous true
.
Параметром password_file
указывается путь к файлу паролей. Если параметр allow_anonymous false
, то подключиться смогут только пользователи, определенные в этом файле.
Более подробно все параметры описаны здесь — mosquitto.conf man page | Eclipse Mosquitto
Хочу объяснить что к чему еще раз. Разобраться не самом протоколе MQTT, а в том как оно работает у меня на контроллере и почему именно так. А тут как раз поможете только Вы, потому что контроллер ваш и Вы лучше за всех знаете как оно настроено и как оно должно работать. ( согласно с ТД MQTT)
Так в том то и оно. Я в итоге привел все к тому как было, но…теперь MQTT Explorer коннектится без пароля. Пароль нужен. Раньше был root/wirenboard. При этом во вкладке Веб-интерфейса поля были пустыми. Я внес изменения в файлы по вашей рекомендации и в итоге…Explorer c паролем, Веб-интерфейс почему-то с паролем, (если не вносишь пароль - не отображаются устройства ) если вносиш то устройства есть а нет Домашней страницы, нет Виджетов, нет вкладки Панели, нет Конфигурационных файлов. Именно в этом хотел бы разобраться. Как настроить так чтобы при пароле все работало как нужно, а не как я описал.
Вообще это все для того чтобы связать MQTT мостом контроллер WB6 с HomeAsst. Ну и чтобы позволяло при создании настроек подставлять какойто пароль а не оставлять поле пустым, потому как не сохраняет . Это еще одна не тривиальная задача…Если поможете с этим то вопрос о пароле отпадает!))
Спасибо
Ну настройка в общем, не специфична для контроллера. Работать будет именно так, как настроены параметры в конфигурационных файлах.
Покажите полностью содержимое всех конфигурационных файлов.
После установки пароля в веб-интерфейсе не забываете менять права доступа на “Администратор”?
Это да
Как я писал выше, привел к первому виду. Удалил папки, которые создал, и настройки в файлах поудалял или изменил. Сейчас все вот так. Пароля нет, Explorer коннектится с произвольным паролем(только не пустым), все вкладки и настройки в Веб-интерфейсе есть.
1 /etc/mosquitto/conf.d/auth.conf
acl_file /etc/mosquitto/acl.conf
password_file /etc/mosquitto/passwd.conf
allow_anonymous true
allow_anonymous_localhost true
2 /etc/mosquitto/conf.d/auth.conf
пустой
3 /etc/mosquitto/mosquitto.conf
# 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
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
4 /etc/mosquitto/passwd.conf
пустой
5 /etc/mosquitto/conf.d/bridge.conf
#see bridge.conf.example for the example
connection WB6
address 192.168.0.100:1883
notifications true
notification_topic /WB6/bridge_status
keepalive_interval 20
restart_timeout 20
try_private true
remote_username <ЛОГИН_НА_Mosquitto_на_HA>
remote_password <ПАРОЛЬ_НА_Mosquitto_на_HA>
bridge_attempt_unsubscribe true
cleansession true
start_type automatic
allow_anonymous true
topic # out 0 devices/ WirenBoard6/
6 /etc/mosquitto/conf.d/listeners.conf
закоментированные строчки с настройки по вашей рекомендации
#change 0.0.0.0 to to limit listener to localhost
listener 1883 0.0.0.0
#allow_anonymous true
#acl_file /etc/mosquitto/acl.conf
#password_file /etc/mosquitto/passwd/default.conf
listener 18883 0.0.0.0
protocol websockets
#allow_anonymous true
#acl_file /etc/mosquitto/acl.conf
#password_file /etc/mosquitto/passwd/default.conf
Вродь все. Как писал выше, как только ставлю пароль вашим способом, начинаются танцы с бубном)
P.S. если что, мост не работает…вот для этого все и затеваю
Не понятно, один и тот же файл?
Покажите ещё файл /etc/mosquitto/acl.conf
Извиняюсь
/etc/mosquitto/acl.conf
пустой
Попробуйте теперь при текущей конфигурации поставить пароль следующим образом.
Добавьте нового пользователя и укажите пароль, выполнив команду:
mosquitto_passwd -c /etc/mosquitto/passwd.conf username
В файле /etc/mosquitto/conf.d/auth.conf
измените параметр allow_anonymous true
на allow_anonymous false
Из файла /etc/mosquitto/conf.d/bridge.conf
удалите allow_anonymous true
В файл /etc/mosquitto/acl.conf
добавьте:
user username
topic readwrite #
topic readwrite $SYS/#
Перезапустите mosquitto:
systemctl restart mosquitto
Попробуйте подключиться через MQTT Explorer используя логин “username” и установленный пароль. Так же в настройках веб-интерфейса установите логин и пароль и не забудьте поменять права доступа. Сообщите о результате.
Значится так)
Сделал все по инструкции…результат
Веб-интерфейс контроллера http://192.168.0.11
Домашняя страница - не отображается
****Панели
****Список -
****Default Dashboard - Не отображается. при добавлении ошибка(Ошибка загрузки списка сеансов и сервисов: убедитесь, что сервис wb-mqtt-logs установлен и работает корректно)
Устройства - отображаются, но НЕ управляются(вкл/выкл зумер, реле,) и НЕ обновляются данные( температура, вольтаж и т.д)
Виджеты - не создано ни одного виджета(но то такое)
История - загрузить не может
Правила - крутит постояно индикатор загрузки чего-то там( кружочек с шариков)
Настройки -
****Конфигурационные файлы - Не отображается, крутит постояно индикатор загрузки чего-то там( кружочек с шариков)
****Веб-интерфейс - ну вот это работает. тут можно поставить логин/пароль. Поставил тот, который установил командой из списка
****Система - Не отображается, крутит постояно индикатор загрузки чего-то там( кружочек с шариков)
****Каналы MQTT - пусто
****Права доступа - отображается, меняется
****Системный журнал - Не отображается, крутит постояно индикатор загрузки чего-то там( кружочек с шариков)
Помощь - вродь есть
MQTT Explorer заходит на 192.168.0.11 но ни один топик не активный
Команда
mosquitto_sub -h 192.168.0.11 -u "ЮЗЕР" -P "ПАРОЛЬ" -t '/devices/wb-adc/controls/5Vout'
ничего не дает.
Вот в этом то и вопрос…вроде пароль поставить можно, а не получается. Я там ваши инструкции на сайте читаю, и доступно написано, но есть одно НО…
Не получается воспроизвести, к сожалению. Возможно вам будет лучше обновиться, поскольку судя по всему у вас старая версия mosquitto. А инструкция действительна для версии mosquitto из актуальной версии ПО.
Остановится не могу))…нужно же как-то соединить WB6 с HomeAsst. Если старая версия, то, ее же можно обновить. Есть ли команды для этого?
Просто соединить WB6 с HomeAsst у меня получилось. Если в интеграции MQTT на НА указать сервер WB6, то топики залетают. все видно. НО, в таком случае я не вижу топики с ZigBee2mqtt, а у меня там куча устройств. Вот и хотел связать два брокера, чтобы топики с WB6 прилетали на москито на НА по мосту, а интеграция MQTT их там все подряд забирала и интегрировала в систему НА.
А вообще то, если посоветуете как настроить мост между двумя брокерами, то, может и не нужно предпринимать другие шаги. Или…вы тут сказали что версия старая, может из-за этого мост не поднимается как нужно? Потому что я уже перечитал пол инета, все советуют приблизительно так как у вас в этой инструкции Может вам выслать логи там какие-то, чтобы вы глянули?
Может еще и обновиться до wb-2401?, Потому что у меня сейчас wb-2207
Спасибо
Да, желательно. Инструкция есть в документации — Обновление прошивки контроллеров Wiren Board 6.x — Wiren Board
В инструкции написано для актуальной версии, поэтому лучше обновиться.
Проверил у себя (wb-2401, mosquitto 2.0.11).
Добавил в /etc/mosquitto/conf.d/20bridges.conf
:
connection homeassistant
address 192.168.0.141:1883
remote_username admin
remote_password password
try_private true
start_type automatic
topic # both
При этом в MQTT explorer вижу топики HA:
И наоборот: