WB5 и Keenetic II (KeenDNS) - не доступен весь WEB интерфейс из вне

Добрый день!
так вопрос возник
имеем серый IP, но при этом у нас есть в наличии роутер от zyxel keneetik II
пользуясь его облачным сервисом у меня отлично получается пробросить по порту 80 его интерфейс наружу
т.е. я вижу боковое меню, но поле веб интерфейса, где у нас показывают каналы, кнопки управления - почему то остается не доступным

P.S. KeenDNS поддерживает проброс через их облачный сервис только протокол HTTP

уточните пожалуйста, то что мы видим в другой части интерфейса

Добрый день!

Веб-интерфейс работает так: вы по 80 порту загружаете сами страницы, а потом через WebSocket эти страницы получают и передают MQTT сообщения на контроллер по порту 18883.
То есть вам нужно пробросить не только 80 порт (сами страницы), но и MQTT сообщения, а в веб-интерфейсе на странице Settings - Web UI указать, где их получать.

Попробуйте в Settings => Web UI поменять порт с 18883 на 80, может помочь

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

просто решение классное и простое напрашивалось, что это решение для серых IP сотовых сетей.
но не на все 100%.

подскажите пжл, может есть какой то вариант решения?
т.к. доступ по HTTP протоколу у меня все же есть…

Добрый день. Хотел бы присоединиться к данному вопросу. Так есть решение именно для этого случая? Изменение номера порта с 18883 на 80 не помогает

А можете по такой инструкции попробовать прокинуть и HTTP и Web-сокетс через 80 порт?
Возможно, заработает проброс.

Спасибо, попробую.

к сожалению мне не помогло

Олег, а можно чуть подробнее: какие ошибки у вас в отладочной консоли браузера наблюдаются при перенаправлении всего через nginx?

Очень актуально, тоже интересует решение.

апну тему. есть рабочее решение с кинетиком?

настроить для интерфейса опрос WS на порт 80 с соответствующим внешним адресом.
Screenshot_20221210_185622

кроме настроек в вебморде нужно где-то еще менять настройки?

Нет, не нужно. Следует выставить доступный с (хоста)компьютера адрес и порт, которые затем уже перенаправляются на реальный адрес-порт контроллера. Идея в том что WS запросы отправляются на прокси контроллера.

main.8dfdefce0c8faf996c23.js:2 Mixed Content: The page at ‘https://wb.****.keenetic.name/#!/web-ui’ was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint ‘ws://wb.*****.keenetic.name:18883/mqtt’. This request has been blocked; this endpoint must be available over WSS.

Т.е. UI всё равно пытается коннектится на порт 18883, хотя в UI указан 80 (похоже, что настройка порта для MQTT как-то к хосту привязана)

т.е. первый вопрос, как сделать, чтобы UI подключался к wss:// вместо ws:// ?

У меня не получается воспроизвести такое поведение. Имею хост с белым IP в интернете, перенаправляю с него 80 порт в локальную сеть на контроллер.

Нет, запросы от локальных скрптов UI идут на адрес/порт указанные в настройках интерфейса, проверьте их еще раз.

У меня сейчас такая ошибка : Не удалось подключиться к wb.*********.keenetic.pro:80 от имени contactless-E8NwkXjQ4M. “AMQJS0007E Socket error:undefined.” (7)

пробовал на разный браузерах. кэш скидывал.

Если используете именно https - тогда вопрос разобран тут: WebUI за reverse proxy - #9 от пользователя hamster
Ну и мы официально не поддерживаем https для интерфейса.

вроде у кинетика единственный вариант https(внешний) → http (внутр)

Важно, что ssl терминирует keenetic
т.е. веб-морда приходит на https и пытается коннектится на ws:// (т.е. без SSL и настройки безопасности браузера это не позволяют)