ПРОВАЙДЕРЫ И ХОСТИНГ

Runpod SSH port forwarding: доступ к локальному сервису через туннель

В этом материале
ГЛАВНОЕ ЗА МИНУТУ

SSH-туннель связывает локальный порт с сервисом внутри Pod; он требует подходящего SSH-транспорта и не заменяет аутентификацию приложения.

Для доступа к локальному сервису Runpod через SSH используйте локальное перенаправление порта поверх полноценного TCP SSH. Сервис может слушать loopback внутри Pod, а браузер обращается к порту на вашем компьютере. Сначала проверьте обычный вход SSH, затем добавляйте туннель.

Какие три порта нужно различать

В этой схеме участвуют внешний SSH-порт из Connect, внутренний порт приложения и свободный локальный порт ноутбука. Они выполняют разные роли и не обязаны совпадать. Частая ошибка — поставить внутренний порт приложения в параметр подключения к SSH-серверу.

Документация SSH Runpod описывает прямой режим с публичным IP и открытым TCP. Базовый проксируемый путь имеет ограничения, поэтому возможности туннелирования необходимо сверять с выбранным способом доступа, а не только с наличием команды ssh.

Схема локального перенаправления

Учебный пример: приложение внутри Pod слушает 127.0.0.1:8888, а на ноутбуке свободен 8899. Структура команды выглядит так:

ssh -N -L 127.0.0.1:8899:127.0.0.1:8888 root@HOST -p SSH_PORT -i PRIVATE_KEY

Замените HOST и SSH_PORT данными текущего Pod, PRIVATE_KEY — локальным путём к приватному файлу. Команда приведена как схема; пользователь и параметры зависят от образа. Приватный ключ не нужно копировать внутрь Pod или добавлять в веб-интерфейс приложения.

Локальную привязку оставляют на 127.0.0.1, если доступ нужен только этому компьютеру. После установления соединения браузер открывает локальный адрес с портом 8899. Окно туннеля должно оставаться активным на время работы.

Что проверить на сервере

Приложение должно действительно слушать ожидаемый адрес и порт внутри окружения. Если локальная проверка сервиса в Pod не проходит, SSH-туннель не исправит его запуск. Сначала посмотрите журнал процесса и убедитесь, что он не завершился после загрузки данных.

Правила экспонирования портов полезны для сравнения с HTTP proxy. Для публичного прокси обычно требуется другая привязка приложения; конфигурацию loopback для туннеля нельзя механически переносить в опубликованный HTTP-сервис.

Как диагностировать пустую страницу

Если SSH работает, но браузер показывает ошибку, проверьте локальный конфликт порта, запущенный процесс и адрес назначения туннеля. Затем проверьте, не перенаправляет ли приложение браузер на другой хост или порт. Веб-интерфейс может требовать токен даже при работающем транспортном канале.

Не отключайте аутентификацию приложения только потому, что соединение проходит через SSH. Туннель ограничивает путь доступа, но не управляет учётными записями самого сервиса. Для командной работы каждому участнику лучше иметь собственный управляемый доступ, чем одну общую приватную пару.

Проверьте и направление передачи: локальное перенаправление открывает доступ с ноутбука к удалённому сервису. Оно не публикует автоматически приложение ноутбука в облаке. Если задача требует обратного маршрута, это другой сценарий с отдельной конфигурацией и оценкой доступных участникам интерфейсов.

Как завершить подключение

После сессии закройте процесс SSH и проверьте, что локальный порт больше не слушается. При остановке или пересоздании Pod следующая попытка потребует сверки текущих параметров Connect. В инструкции проекта храните схему портов и назначение сервиса без секретных значений.

Для продолжения доступны настройка SSH-ключей и общий пример Jupyter через туннель.

← Все материалы