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