SSH proslijeđeni port nije uvijek SOCKS proxy
Razlikujte fiksno lokalno SSH prosljeđivanje od dinamičkog SOCKS slušača prije konfigurisanja aplikacije.
Napravite SSH tunel, unesete 127.0.0.1 i njegov port u postavke proxyja preglednika i ništa se ne učita. Slušač možda savršeno radi. Možda jednostavno čeka pogrešnu vrstu saobraćaja.
| Prosljeđivanje | Šta lokalna aplikacija šalje | Odabir odredišta |
|---|---|---|
-L | Uobičajeni protokol ciljne usluge | Fiksirano u SSH naredbi |
-D | SOCKS pregovaranje, zatim saobraćaj aplikacije | Zatraženo od SOCKS klijenta |
Za jedan web server ovo je fiksno prosljeđivanje:
ssh -N -L 127.0.0.1:9080:web.example.com:80 [email protected]
Posjetite http://127.0.0.1:9080/ kao web stranicu. Ne označavajte port 9080 kao SOCKS: on prosljeđuje bajtove jednom web serveru navedenom u naredbi. Otvaranje stranice pod drugim imenom hosta također može uticati na njen virtualni hosting, preusmjeravanja ili kolačiće.
Za SOCKS slušač oblik se mijenja:
ssh -N -D 127.0.0.1:1080 [email protected]
Konfigurišite aplikaciju da koristi SOCKS na 127.0.0.1:1080. Unos te adrese direktno u adresnu traku preglednika šalje web zahtjev SOCKS slušaču, još jedno nepodudaranje protokola.
OpenSSH priručnik dokumentuje oba oblika. Postoji korisna iznimka: prosljeđivanje postojećeg HTTP proxyja pomoću -L stvara lokalni port koji govori HTTP proxy protokol, jer je njegovo fiksno odredište i samo HTTP proxy. Usluga na drugom kraju određuje šta pripada fiksnom prosljeđivanju. Prosljeđivanje postojećeg proxyja kroz SSH zadržava protokol i račun tog proxyja.