Временный доступ к UI через socat
Эта инструкция предназначена для разовой проверки интерфейса с другой машины в доверенной
тестовой сети. Приложение продолжает слушать 127.0.0.1:8080, а socat временно
перенаправляет TCP-соединения с выбранного сетевого адреса сервера.
socat в приведённом примере не шифрует HTTP: пароль и сессионные cookie передаются по сети
открытым текстом. Используйте тестовую учётную запись и изолированную сеть. Для доступа
через недоверенную сеть используйте SSH-туннель
или настроенный HTTPS reverse proxy.
Подготовка
На сервере с установленным Sambryx проверьте, что UI отвечает локально:
Установите socat:
Определите IPv4-адрес сетевого интерфейса сервера и адрес тестового компьютера.
В примере сервер имеет адрес 192.168.1.10, клиент — 192.168.1.20.
Замените оба значения своими адресами. Если между машинами есть NAT, учитывайте адрес
клиента, который фактически видит сервер.
Запуск проброса
В отдельном терминале на сервере:
SERVER_LAN_IP=192.168.1.10
TEST_CLIENT_IP=192.168.1.20
sudo socat -d -d \
"TCP4-LISTEN:80,bind=${SERVER_LAN_IP},range=${TEST_CLIENT_IP}/32,reuseaddr,fork" \
TCP4:127.0.0.1:8080
Команда работает в foreground. bind ограничивает адрес прослушивания, range допускает
только указанный IPv4-адрес клиента, fork позволяет браузеру открывать несколько соединений.
Не заменяйте эти ограничения прослушиванием всех интерфейсов для обычной проверки.
На тестовом компьютере откройте:
Путь /ui/ записывается строчными буквами. Пробрасывается весь HTTP-порт приложения,
включая /api, поэтому функции входа и управления используют тот же адрес.
Если порт 80 занят, выберите свободный порт, например 8081, заменив TCP4-LISTEN:80
на TCP4-LISTEN:8081. Тогда URL будет http://192.168.1.10:8081/ui/.
Правила firewall на сервере и маршрутизация должны уже разрешать нужное соединение.
Эта инструкция не требует отключения firewall, изменения SERVER_ADDRESS, создания
systemd-службы или автозапуска socat.
Проверка и остановка
Во втором терминале сервера проверьте слушающий сокет:
После теста нажмите Ctrl+C в терминале с socat и повторите проверку сокета.
Убедитесь, что процесс больше не слушает выбранный адрес и порт. Уже открытые соединения
могут обслуживаться дочерними процессами: закройте тестовые вкладки; если процессы остались,
завершите только PID этой проверки, указанные в диагностике socat. Не используйте общий
killall socat, если на сервере есть другие пробросы.
С тестового компьютера новое соединение к тестовому порту больше не должно устанавливаться.
Sambryx при этом остаётся доступен локально на 127.0.0.1:8080.
Ограничение учёта IP
Приложение видит соединения от socat как локальные — обычно от 127.0.0.1.
Лимит попыток входа по IP будет общим для таких соединений. socat не добавляет доверенную
информацию о реальном клиенте и не заменяет полноценную настройку reverse proxy.
Описание параметров: руководство socat.