Ответ
Для проброса порта удаленного сервера на локальную машину используйте SSH-туннелирование с опцией -L (Local port forwarding).
Базовый синтаксис:
ssh -L [локальный_порт]:[удаленный_хост]:[удаленный_порт] [пользователь]@[ssh_сервер]
Практический пример: Допустим, на удаленном сервере app-server.internal работает веб-приложение на порту 8080, но этот порт закрыт внешним фаерволом. Чтобы получить к нему доступ локально через порт 8888, выполните:
ssh -L 8888:localhost:8080 devops@ssh-gateway.company.com
После установки соединения вы сможете открыть в локальном браузере http://localhost:8888 и получить доступ к удаленному приложению.
Ключевые опции и сценарии использования в DevOps:
-L— стандартный локальный проброс (трафик с локальной машины перенаправляется через SSH-сервер к целевому хосту).-R— обратный проброс (Reverse tunneling). Полезен для временного доступа к сервису на вашей локальной машине из удаленной сети (например, для отладки вебхука).-N— не выполнять удаленную команду, только пробросить туннель.-f— перевести процесс в фон.-o ExitOnForwardFailure=yes— завершить сессию при ошибке проброса порта.
Важно для безопасности: SSH-туннелирование часто используется для безопасного доступа к внутренним ресурсам (базам данных, панелям мониторинга, API), которые не должны быть доступны из интернета. В продакшене для постоянного доступа часто настраивают VPN или используют сервисные меши (например, Teleport).