В этом ответе я рассмотрю конкретный пример. Вам просто нужно заменить имена компьютеров, имена пользователей и пароли на ваши.
Постановка задачи
Предположим, у нас есть следующая топология сети:
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
.
конфигурация
В 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:
Некоторые замечания:
- in
~/.ssh/config
, HEC
это имя соединения: вы можете изменить его на что угодно.
-D9991
Говорит ssh
о создании SOCKS4 прокси на порту 9991
.