Я знаю, что могу использовать 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.