Назад | Перейти на главную страницу

Делаем прокси доступным на удаленном сервере через ssh-туннель

Я знаю, что могу использовать ssh-туннелирование для создания «прокси» на моем компьютере, чтобы весь генерируемый локально трафик проходил через удаленный сервер. Как это:

$ ssh -D 12345 myuser@remote_ssh_server

Но как насчет того, чтобы создать «прокси» на удаленном сервере, чтобы весь трафик, который я отправляю, проходил через мою локальную машину? Возможно ли это с помощью ssh?

По сути, я хочу использовать свое локальное подключение к Интернету с некоторыми конкретными командами для удаленного запуска, так как сервер не имеет прямого доступа к Интернету.

Самый простой способ сделать это - использовать один порт и хост за раз. Например, для перенаправления трафика с удаленного: 8001 на внутрисерверный: 80,

ssh -R 8001:intraserver:80 myuser@remote

Но если вы хотите перенаправить весь трафик с удаленного компьютера, и у вас есть ssh-сервер, работающий на вашем локальном хосте,

ssh -R 2200:localhost:22 myuser@remote ssh -D 10800 -p 2200 localhost

Разворачивая это:

  • -R 2200:localhost:22 устанавливает переадресацию с удаленного: 2200 на локальный: 22.
  • ssh -p 2200 localhost запускает ssh на удаленном компьютере, чтобы подключиться к remote: 2200, и так обратно к localhost: 22 (туннелируется через первое ssh-соединение).
  • -D 10800 туннелирует SOCKS от удаленного: 10800, через соединение от удаленного до localhost.