Я знаю, что могу использовать ssh, туннелирующий для создания "прокси" на моей машине так, чтобы я мог сделать весь трафик сгенерированным, локально проходят удаленный сервер. Как это:
$ ssh -D 12345 myuser@remote_ssh_server
Но что относительно того, если я должен создать "прокси" на удаленном сервере, так, чтобы весь трафик, что я отправляю его, прошел мою локальную машину? Действительно ли это возможно с ssh?
По существу я хочу использовать свое локальное интернет-соединение с некоторыми определенными командами для выполнения удаленно, поскольку сервер не имеет прямого доступа к Интернету.
Самый простой способ сделать это - по одному порту и хосту за раз. Например, для переадресации трафика с remote: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
устанавливает переадресацию с remote:2200 на localhost:22. ssh -p 2200 localhost
запускает ssh на remote для соединения с remote:2200, и таким образом возвращается на localhost:22 (туннелируется через первое соединение ssh).-D 10800
туннелирует SOCKS с remote:10800, через соединение с remote back на localhost.