22

ssh -D может создать порт socks на локальной машине, который передает трафик на удаленный, а затем в другие места.

ssh -L port:host:hostport порт, порт прослушивания на локальной машине, передача трафика на «хост: хост-порт» с точки зрения удаленной машины.

ssh -R port:host:hostport является аналогом ssh -L , который прослушивает порт на удаленной машине и передает трафик на «host:hostport» с точки зрения локальной машины.

Но каков аналог ssh -D , т. Е. Как открыть порт socks на удаленной машине, который будет передавать трафик на локальный, а затем в другие места?

3 ответа3

12

С -D & -L вас есть возможность общаться между двумя машинами в любом случае.

Так...

  • На локальном компьютере с помощью -R создайте прослушивающий порт на удаленном компьютере, указывающий на sshd локального компьютера.
  • Используйте -D на удаленной машине, указав на порт, который вы создали выше.

Я думаю, что заполнение ниже заставит это работать ...

ssh remotehost -R remoteport:localhost:localport "ssh -D 9050 localhost -p remoteport"

« remotehost », « remoteport » и « localport » в вышеуказанном случае необходимо изменить. Сокс-прокси будет сформирован на 9050.

11

Достигается прозрачно с помощью этого фрагмента в ~/.ssh/config:

Host sockstunnel
    ProxyCommand ssh -D 3128 localhost nc -q 1 localhost 22

Host target
    RemoteForward 3128 localhost:3128
    ProxyCommand ssh -W target:22 sockstunnel

подробности

Мы хотим реверс DynamicForward. Это достигается с помощью двух команд ssh:

  • ssh -D 3128 localhost
  • ssh -R 3128:localhost:3128 target

Таким образом, у цели есть туннель SOCKS к клиенту SSH.

Я использовал классический способ объединения ssh для достижения удаленной цели через промежуточные хосты, так что создание туннеля SOCKS прозрачно обрабатывается при входе в цель. Первый трюк ProxyCommand + nc является обязательным, потому что -W подразумевает ClearAllForwardings.

3

Нет возможности предоставить обратный туннель socks с OpenSSH, поэтому вы должны запустить команду ssh, предоставив прокси socks на "удаленной" машине.

Если удаленный компьютер не может подключиться по ssh к локальному компьютеру, сначала создайте ssh-соединение с локального на удаленное, которое перенаправляет порт 22, например, 2222. Затем удаленный компьютер может подключиться к локальной сети через порт 2222.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .