Ваш первый публичный сайт. Выводим сервисы в интернет.

npm в докере на vps. Сервисы или за роутером и пробовал сам роутер - 192.168.1.1. Пинг с роутера до сети опенконнекта в докере (172.22.22.22) проходит. На npm захожу из внешки

А как это проверить? кроме пинга

А у вас npm и openconnect было по отдельности развернуты или в одном compose стаке? Если по отдельности - то у них у каждого своя сеть, поэтому npm может и не видеть сеть за поднятым тунелем.

Вам надо попробовать соединить контейнеры в одну докер сеть. И потом в npm сделать проксирование на сервис который находится в вашей домашней сети.

По отдельности запускаются. Контейнеры были в разных сетях. Создал одну. Сейчас между собой пингуются. Сеть вида 172.22. В npm контейнере добавил маршрут для 192 сети на ip контейнера с openconnect. Веб интерфес роутера начинает прогружаться и зависает, Home Assistant выдает сразу ошибку 400: Bad Request. Телнет и пинг с npm контейнера до адресов в 192 сети проходит. Что еще можно проверить?

Ну тут скорее всего надо проверить настройки HA - разрешен ли адрес вашего прокси. Насколько мне известно, то HA в этом плане сильно привередливый. Обычно такие параметры настроек обзываются как trusted_proxies (Home assistant (400 Bad Request) Docker + Proxy - Solution - #7 by chris1bass - Configuration - Home Assistant Community).

Я бы попробовал тестировать на чем то более легковесном. Можно поднять в локальной сети обычный образ nginx и на него настроить проксирование.

На некоторых роутерах бывает такое что пинги из тунеля приходят, а вот остальной tcp/udp трафик не проходит. Вы не делали в роутере настройки что бы разрешить входящий трафик с туннеля в вашу подсеть? Как вариант из-за этого может и дропать роутер, он понимает что подключение идет не из локального бриджа, а из туннеля.

1 лайк

Позвольте понудеть немного, но

Как минимум в 2х темах уже решение было и вот тут уже разбиралась данная ошибка

1 лайк

Спасибо, действительно в логах ХА есть сообщение

A request from a reverse proxy was received from 172.22., but your HTTP integration is not set-up for reverse proxies

Но похоже проблема не только в этом. Подозреваю причина в mtu на впн. Но пока что нет времени с этим разбираться

Я бы на вашем месте посмотрел бы в сторону WireGuard или NetBird для настройки туннеля. И поднял бы их из бинарников, вместо docker контейнера, на физической сети так будет проще на старте работать с туннелями, и сетями docker

Понизил mtu на vpn интерфейсе роутера и все заработало