Reverse SSH Tunnel — это сетевая конфигурация, позволяющая внешнему серверу получить доступ к локальной машине, находящейся за NAT или строгим брандмауэром. В отличие от стандартного SSH-соединения, где клиент инициирует сессию к серверу, здесь клиент создает исходящий туннель и просит сервер «слушать» определенный порт для передачи трафика обратно клиенту.
Механизм работы
Процесс начинается с того, что целевая машина (за NAT) выполняет команду ssh -R. Это открывает порт на удаленном публичном сервере. Любой трафик, приходящий на этот порт сервера, инкапсулируется в существующее SSH-соединение и доставляется на локальный порт целевой машины. Таким образом, сервер выступает в роли ретранслятора, обходя ограничения входящих соединений на стороне клиента.
Технология применяется для удаленного администрирования IoT-устройств, технической поддержки рабочих станций без выделенного IP и обхода корпоративных сетевых ограничений. Это избавляет от необходимости настройки Port Forwarding на роутере, к которому у администратора может не быть доступа.
Типовой сценарий: выполнение команды ssh -R 2222:localhost:22 user@remote-host позволяет пользователю на remote-host подключиться к локальной машине через ssh -p 2222 localhost. Для стабильности в продакшене используют утилиту autossh, которая автоматически восстанавливает сессию при разрыве связи.