Похоже пришло время и мне обратиться за помощью в ТП
Предыстория: Имею в пользование некоторое количество контроллеров WB от 7.4.х до 8.5.1
Часть из них работает в stable, часть в testing. Периодически всем им обновляю ПО путем apt update && apt upgrade
- т.е. стараюсь держать из в достаточно актуальном состоянии.
Июльский testing (это тот, в который добавили https для локального доступа и аутентификацию через вэб) у меня вызвал проблемы.
Если откатиться на stable, то проблем с вебинтерфейсом нет (пропадают).
Проверил текущий testing на пяти своих разных контроллерах - эффект везде одинаковый - в вебинтерфейсе (как локально так и через облако Wb) возникает сообщение об ошибке “Не удалось создать MQTT соединение” и как следствие, практически весь функционал в вэб интерфейсе недоступен (включая и создание диагностического архива).
Проверял доступ (вэб) на разных РС (разные броузеры, в разных сетях, с очисткой кэша, в режиме инкогнито и пр.)
Что проверял:
- апдейты проходят штатно, без ошибок (сетевой доступ без ограничений со стороны роутера, кабельный интернет, ВПНов и пр. - нет)
- mosquitto запускается без проблем и без ошибок с новой конфигурацией (где добавлены порты 18883…18886)
root@wirenboard-AOGF56JV:~# netstat -tlnp | grep 188*
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 1022567/mosquitto
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1845/sshd: /usr/sbi
tcp6 0 0 127.0.0.1:18883 :::* LISTEN 1022567/mosquitto
tcp6 0 0 127.0.0.1:18884 :::* LISTEN 1022567/mosquitto
tcp6 0 0 127.0.0.1:18885 :::* LISTEN 1022567/mosquitto
tcp6 0 0 127.0.0.1:18886 :::* LISTEN 1022567/mosquitto
tcp6 0 0 :::1883 :::* LISTEN 1022567/mosquitto
- Подписка на все топики в москито тоже дает адекватный ответ:
root@wirenboard-AOGF56JV:~# mosquitto_sub -v -t '#'
/rpc/v1/wb_logs/logs/CancelLoad 1
/rpc/v1/wb_logs/logs/Load 1
/rpc/v1/wb_logs/logs/List 1
/rpc/v1/diag/main/diag 1
/rpc/v1/diag/main/status 1
/rpc/v1/wb-mqtt-serial/device/Set 1
/rpc/v1/wb-mqtt-serial/device/LoadConfig 1
/rpc/v1/wb-mqtt-serial/device/SetPoll 1
/rpc/v1/wb-mqtt-serial/device/Probe 1
/rpc/v1/wb-mqtt-serial/device/Load 1
/rpc/v1/wb-mqtt-serial/port/Scan 1
/rpc/v1/wb-mqtt-serial/port/Setup 1
/rpc/v1/wb-mqtt-serial/port/Load 1
/rpc/v1/wb-mqtt-serial/ports/Load 1
/rpc/v1/wb-mqtt-serial/config/GetSchema 1
/rpc/v1/wb-mqtt-serial/config/Load 1
/rpc/v1/db_logger/history/get_channels 1
/rpc/v1/db_logger/history/get_values 1
/rpc/v1/wb-device-manager/bus-scan/Start 1
/rpc/v1/wb-device-manager/bus-scan/Stop 1
/rpc/v1/wb-device-manager/fw-update/GetFirmwareInfo 1
/rpc/v1/wb-device-manager/fw-update/Update 1
/rpc/v1/wb-device-manager/fw-update/ClearError 1
/rpc/v1/wb-device-manager/fw-update/Restore 1
/rpc/v1/wbrules/Editor/ChangeState 1
/rpc/v1/wbrules/Editor/List 1
/rpc/v1/wbrules/Editor/Load 1
/rpc/v1/wbrules/Editor/Remove 1
/rpc/v1/wbrules/Editor/Rename 1
/rpc/v1/wbrules/Editor/Save 1
/rpc/v1/confed/Editor/List 1
/rpc/v1/confed/Editor/Load 1
/rpc/v1/confed/Editor/Save 1
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/meta/name Network Connection lo
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/meta/driver wb-nm-helper
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Name lo
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Name/meta {"type": "text", "readonly": true, "order": 1}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/UUID 868a9a3f-62d9-43c2-be2c-756fa258dce4
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/UUID/meta {"type": "text", "readonly": true, "order": 2}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Type loopback
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Type/meta {"type": "text", "readonly": true, "order": 3}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Active 1
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Active/meta {"type": "switch", "readonly": true, "order": 4}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Device lo
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Device/meta {"type": "text", "readonly": true, "order": 5}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/State activated
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/State/meta {"type": "text", "readonly": true, "order": 6}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Address 127.0.0.1
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Address/meta {"type": "text", "readonly": true, "order": 7}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Connectivity 1
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/Connectivity/meta {"type": "switch", "readonly": true, "order": 8}
/devices/system__networks__868a9a3f-62d9-43c2-be2c-756fa258dce4/controls/UpDown/meta {"type": "pushbutton", "readonly": false, "title": {"en": "Down"}, "order": 12}
/devices/knx/controls/data i:0/0/0 i:0/0/0 GroupValueRead 0x00
/devices/knx/controls/data/meta {"order":0,"readonly":false,"title":{"en":"Message","ru":"\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435"},"type":"text"}
/devices/knx/controls/data/meta/type text
/devices/knx/controls/data/meta/readonly 0
/devices/knx/controls/data/meta/order 0
-
ngnix также проверил - запускается без ошибок и предупреждений. Конфигурация у него “новая” (та что содержит в себе апстримы на москитто порты 18883 и т.д) - т.е. инклуды конфигурации ngnix`у подключаются без проблемы - это я тоже проверил.
-
сurl`ом формировал запросы к http://192.168.244.18/mqtt - ответ адекватный за исключением " HTTP/1.1 401 Unauthorized" (не авторизованный запрос)
curl -H 'Upgrade: websocket' -H "Sec-WebSocket-Key: `openssl rand -base64 16`" -H 'Sec-WebSocket-Version: 13' --http1.1 -sSv http://192.168.244.18/mqtt
* Trying 192.168.244.18:80...
* Connected to 192.168.244.18 (192.168.244.18) port 80 (#0)
> GET /mqtt HTTP/1.1
> Host: 192.168.244.18
> User-Agent: curl/7.74.0
> Accept: */*
> Upgrade: websocket
> Sec-WebSocket-Key: VXerZWFEcY8GS8kF3ntZaw==
> Sec-WebSocket-Version: 13
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 401 Unauthorized
< Server: nginx/1.18.0
< Date: Thu, 21 Aug 2025 10:20:21 GMT
< Content-Type: text/html
< Content-Length: 179
< Connection: keep-alive
<
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.18.0</center>
</body>
</html>
* Connection #0 to host 192.168.244.18 left intact
- возвращал пароль root`у на тот, что по умолчанию (мало ли из-за этого могли быть проблемы)
Повторюсь - идентичная картина у меня на пяти контроллерах . Стороннего ПО на них нет (на одном из них только поднимал графаню - остальные со штатным ПО).
Естественно, веб пользователей заводил (и админа и и оператора и юзера), причем как через вэб, так и посредством утилиты из шелла. Аутентификация в вэб с этими пользователями проходит нормально, в зависимости от “уровня” залогиненного пользователя меняется состав меню (в левой части вэбинтерфейса).
Здесь нашел несколько похожих случаев, но все они остались без решения, кроме как “сбросить к заводским”.
Такой подход меня не очень устраивает - во первых парк контроллеров у меня обширный и с каждым заниматься восстановлением и бэкапов не хочется. Поэтому хочется найти причину ошибки и методы ее устранения.
Во вторых, это решение (локальный аутентификация и https) рано или поздно войдет в stable релиз и вот тогда мне откатываться будет уже некуда
В третьих, очень похоже, что ошибка носит систематический характер именно в моих “решениях” - иначе бы тут было бы уже большое число подобных обращений.
Для анализа могу предоставить доступ к организации - поместил туда 5 тестовых контроллеров. С двумя из них можно делать “все что хочешь” - они не задействованы в системах автоматизации и на них запущено по одному… двум простейшим правилам.
Один откатил на стабильный релиз (работает без проблем, но он также при переходе на testing вызывает описанные выше проблемы)
Есть достаточно молодые “Дата производства: 2025-02-26”, есть по старше “Дата производства: 2023-01-23 08:03:54”
Пока ни на одном своем контроллере так и не удалось запустить последний testing.
Прошу помочь найти проблему и подсказать как ее устранить (кроме варианта с откатом на заводские)