In dit antwoord zal ik een concreet voorbeeld geven. U hoeft alleen maar de hostnamen, gebruikersnamen en wachtwoorden van computers te vervangen door die van u.
Probleemstelling
Laten we aannemen dat we de volgende netwerktopologie hebben:
our local computer <---> server 1 <---> server 2
Voor de concretisering, laten we aannemen dat we de volgende computernamen, gebruikersnamen en wachtwoorden hebben:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Doel: we willen een SOCKS proxy opzetten die luistert op poort 9991
van LocalPC
zodat elke keer dat een verbinding op LocalPC
wordt geïnitieerd vanuit poort 9991
deze via mit.edu
dan hec.edu
gaat.
Voorbeeld van een use case: hec.edu
heeft een HTTP-server die alleen toegankelijk is op http://127.0.0.1:8001 , om veiligheidsredenen. We willen graag http://127.0.0.1:8001 kunnen bezoeken door een webbrowser te openen op LocalPC
.
Configuratie
In LocalPC
, voeg in ~/.ssh/config
toe:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Dan in de terminal van LocalPC
, voer:
ssh -D9991 HEC
uit Het vraagt u het wachtwoord van bob
op mit.edu
(dat wil zeggen, dylan123
), dan vraagt het u het wachtwoord van john
op hec.edu
(d.w.z, doe456
).
Op dat moment draait de SOCKS proxy nu op poort 9991
van LocalPC
.
Bijvoorbeeld, als u een webpagina op LocalPC
wilt bezoeken met behulp van de SOCKS proxy, kunt u in Firefox:
Enkele opmerkingen:
- in
~/.ssh/config
, HEC
is de naam van de verbinding: u mag deze wijzigen in alles wat u wilt.
- De
-D9991
vertelt ssh
om een SOCKS4 proxy op poort 9991
in te stellen.