W tej odpowiedzi przejdę przez konkretny przykład. Wystarczy, że zastąpisz nazwy hostów komputerów, nazwy użytkowników i hasła swoimi.
Problematyka
Załóżmy, że mamy następującą topologię sieci:
our local computer <---> server 1 <---> server 2
Dla ścisłości, załóżmy, że mamy następujące nazwy hostów, nazwy użytkowników i hasła komputerów:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Cel: chcemy ustawić SOCKS proxy, który nasłuchuje na porcie 9991
z LocalPC
tak, aby za każdym razem gdy połączenie na LocalPC
jest inicjowane z portu 9991
przechodziło przez mit.edu
następnie hec.edu
.
Przykładowy przypadek użycia: hec.edu
posiada serwer HTTP, który jest dostępny tylko na http://127.0.0.1:8001 , ze względów bezpieczeństwa. Chcielibyśmy móc odwiedzić http://127.0.0.1:8001 otwierając przeglądarkę internetową w LocalPC
.
Configuration
In LocalPC
, add in ~/.ssh/config
:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Then in the terminal of LocalPC
, run:
ssh -D9991 HEC
It will ask you the password of bob
on mit.edu
, dylan123
), następnie w terminalu z john
zapyta Cię o hasło hec.edu
on doe456
(tzn, 9991
).
W tym momencie, SOCKS proxy działa na porcie LocalPC
z LocalPC
.
Na przykład, jeśli chcesz odwiedzić stronę internetową w ~/.ssh/config
za pomocą SOCKS proxy, możesz zrobić to w Firefoksie:
Kilka uwag:
- w
HEC
, -D9991
to nazwa połączenia: możesz zmienić ją na dowolną osobę.
ssh
mówi 9991
, aby ustawić SOCKS4 proxy na porcie &007.