Иногда необходимо подключится к удаленному серверу по протоколу SSH через существующий SOCKS 5 прокси, что может быть создан как из SSH-подключения к другому серверу, так и другими способами.
Сегодня я расскажу об этом.
Я уже писал как создать SOCKS 5 прокси на сервере имея SSH-доступ к нему. Для примера сделаем SOCKS 5 на одном сервере и подключимся через него к второму.
На сервере с SOCKS 5 прокси (если он создаётся через SSH, а не другими способами) в файле настроек SSH /etc/ssh/sshd_config
должна быть строчка разрешающая пересылку TCP-пакетов:
AllowTcpForwarding yes
Без неё у вас врядли что-то получится.
Итак, используя шаблон
ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер>
запустим прокси на порту 1080
для сервера 8.8.8.8
например так
ssh -f -C2qTnN -D 1080 [email protected]
Теперь сама строчка подключения к второму удаленному серверу по протоколу SSH через SOCKS 5 прокси:
ssh -o ProxyCommand="nc -x 127.0.0.1:1080 %h %p" [email protected]
Где
127.0.0.1:1080
— IP и порт SOCKS 5 прокси
roman
— это ваш логин на сервер
8.8.4.4
— адрес вашего сервера