В этом ответе я приведу конкретный пример. Нужно просто заменить имена хостов, логины и пароли компьютеров на свои.
Описание проблемы
Предположим, что у нас следующая топология сети:
our local computer <---> server 1 <---> server 2
Ради конкретики, предположим, что у нас следующие имена хостов, имена пользователей и пароли компьютеров:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Цель: мы хотим установить SOCKS прокси, который прослушивает порт 9991
из LocalPC
так, чтобы каждый раз, когда соединение на LocalPC
инициируется с порта 9991
, оно проходило через mit.edu
, а затем hec.edu
.
Пример использования: hec.edu
имеет HTTP сервер, который доступен только на http://127.0.0.1:8001 , из соображений безопасности. Мы хотели бы иметь возможность посетить http://127.0.0.1:8001 , открыв веб-браузер на LocalPC
.
Configuration
In LocalPC
, добавьте ~/.ssh/config
:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Затем в терминале LocalPC
, запустите:
ssh -D9991 HEC
Он спросит у вас пароль bob
на mit.edu
(то есть, dylan123
), затем спросит пароль john
на hec.edu
(то есть, doe456
)
В этот момент SOCKS прокси запущен на порту 9991
из LocalPC
.
Например, если вы хотите посетить веб-страницу на LocalPC
, используя SOCKS прокси, вы можете сделать в Firefox:
Некоторые замечания:
- в
~/.ssh/config
, HEC
это имя подключения: вы можете изменить его на что угодно.
-D9991
говорит ssh
, чтобы настроить SOCKS4 прокси на порту 9991
.