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.