SSH Linux с установленным клиентом/сервером OpenSSH; настройки зависят от дистрибутива

SSH туннель не перенаправляет локальный порт

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

SSH-подключение установлено, но локальное приложение не может попасть в службу через туннель -L. Разделите проблемы локального прослушивания, запрета переадресации и адреса сервиса на стороне сервера.

В этой статье
  1. Как распознать проблему и когда применять инструкции
  2. Причины и признаки
  3. Подробная проверка и безопасное решение
  4. Как проверить результат и что делать, если не помогло

#Как распознать проблему и когда применять инструкции

SSH-подключение установлено, но локальное приложение не может попасть в службу через туннель -L. Разделите проблемы локального прослушивания, запрета переадресации и адреса сервиса на стороне сервера. Уточните модель/сборку системы, наличие резервной копии и способ восстановить доступ, прежде чем применять действия.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Удалённый сервис не слушает адресНа сервере нет TCP-службы по заданному адресу или портуОшибка connect failed: Connection refusedСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.
Локальный порт занятНа компьютере пользователя уже запущена программа на том же портуbind: Address already in useСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.
Сервер запрещает переадресациюsshd ограничен AllowTcpForwarding/PermitOpen или Matchadministratively prohibitedСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.

#Подробная проверка и безопасное решение

  1. Шаг 1. Уточните схему туннеляЗапишите три значения: локальный порт (например 15432), удалённый адрес сервиса со стороны SSH-сервера (например 127.0.0.1) и удалённый порт (например 5432). Доступ к службе возможен только с разрешения администратора.
  1. Шаг 2. Убедитесь, что удалённый сервис действительно доступенВ уже работающем SSH-сеансе на сервере выполните проверку TCP-порта. Здесь 5432 — пример PostgreSQL, не универсальное значение. Если порт закрыт, исправляют службу, а не SSH-туннель.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    ss -ltn | grep ":5432"
  1. Шаг 3. Проверьте, свободен ли локальный портНа своём компьютере Linux/macOS в терминале посмотрите занятый порт 15432. Если он уже занят, выберите другой локальный порт; не останавливайте незнакомое приложение.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    lsof -nP -iTCP:15432 -sTCP:LISTEN
  1. Шаг 4. Создайте туннель с немедленной проверкой ошибокОткройте новый терминал клиента и выполните команду; -N не запускает удалённую команду, -L задаёт схему локальный:удалённый:порт, ExitOnForwardFailure откажет при ошибке запуска прослушивания. Терминал оставьте открытым.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    ssh -v -N -o ExitOnForwardFailure=yes -L 127.0.0.1:15432:127.0.0.1:5432 user@server.example.org
  1. Шаг 5. Проверьте локальное прослушиваниеВо втором окне терминала клиента убедитесь, что 127.0.0.1:15432 занят SSH. Если нет, посмотрите вывод первого окна на bind failed. Затем подключайте приложение к 127.0.0.1:15432, а не к исходному серверному порту.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    lsof -nP -iTCP:15432 -sTCP:LISTEN
  1. Шаг 6. Разберите сообщение о запрете переадресацииЕсли после обращения клиента SSH пишет administratively prohibited, администратор должен проверить на сервере AllowTcpForwarding, PermitOpen и блоки Match; изменять sshd_config наугад запрещено. Смена клиентского флага не обходит запрет.
  1. Шаг 7. Проверьте реальный обмен и корректно закройте туннельВ тестовом клиенте базы/приложении выполните безвредный запрос чтения, убедитесь в ответе. Для завершения вернитесь в окно SSH и нажмите Ctrl+C; штатные соединения других пользователей не затрагиваются.

#Как проверить результат и что делать, если не помогло

Порт 15432 слушается процессом SSH, приложение получает ожидаемый ответ и соединение прекращается по Ctrl+C. При ошибке удалённого сервиса туннель может быть установлен, но не передавать данные. Если симптомы не исчезли, сохраните точное сообщение об ошибке и выполненные проверки; не повторяйте опасные процедуры циклически.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.