September 7, 2021

Прокинуть порт через ssh

ssh -L 777:localhost:27017 user@server

Как пробросить порт например для базы данных с удаленного сервера на свой компьютер?

(например, MongoDB c портом 27017 на удаленном сервере, который не доступен наружу). Для этого используется параметр -L.

ssh -L 777:localhost:27017 user@server

Теперь можно подключиться к MongoDB напрямую, как будто она запущена у вас на компьютере.

mongo localhost:777 -u user -p password

Если нужно с сервера стукнутся на свою машину

Теперь представим ситуацию, что нужно с сервера обратиться к какому-нибудь сервису, запущенному на локальном компьютере. Например, вам регулярно присылают HTTP запросы по 80 порту на сервер. Вы можете прокинуть локальный веб-сервер со своей рабочей машины (скажем с 3000 порта) на сервер так, что запросы будут идти напрямую к вам. За это отвечает параметр -R.

ssh -R 80:localhost:3000 user@server

После этой команды на сервере откроется 80 порт, запросы на который будут прокидываться вам на 3000.