Имеется контроллер с запущенным web-сервером для мониторинга и управления. У контроллера имеется Ethernet интерфейс и статический IP. Необходимо обеспечить доступ в web-серверу из интернета.
Контроллер подключается к интернету через роутер TP-Link MR3020 с OpenWRT + 4G модем Huawei. Других возможностей для выхода в интернет нет.
Сейчас реализована следующая схема:
- Имеется VPS с публичным IPv4 и запущенным SSH-сервером;
- Создан пользователь tunnel без доступа к шеллу и авторизацией по ключам, «GatewayPorts yes» в sshd_config;
- При подаче питания, роутер (MR3020) подключается в сети используя 4G-модем;
- После установления соединения, роутер поднимает SSH-туннель для маршрутизации трафика между VPS и контроллером;
- На VPS запущен nginx в режиме reverse proxy для обеспечения доступа через HTTPS и авторизации.
В целом, все работает стабильно, но непонятно как такая система будет вести себя при масштабировании. Планируется, что будет порядка 5000 устройств, требующих доступа.
Также, я думал организовать это при помощи Wireguard, но хочется сохранить простоту настройки и конфигов.
Помимо этого, хотелось бы каким-либо образом иметь возможность опозновать подключенные устройства (по MAC?), чтобы небыло необходимости вручную прописывать конфиги в nginx.
Может кто-то уже сталкивался с подобной проблемой и имеет элегантное решение?