Port proslijeđen preko SSH nije uvijek SOCKS proxy
Razlikujte fiksno lokalno SSH prosljeđivanje od dinamičkog SOCKS slušatelja prije konfiguriranja aplikacije.
Stvorite SSH tunel, unesete 127.0.0.1 i njegov port u postavke proxyja preglednika i ništa se ne učita. Slušatelj možda savršeno radi. Možda jednostavno čeka pogrešnu vrstu prometa.
| Prosljeđivanje | Što lokalna aplikacija šalje | Odabir odredišta |
|---|---|---|
-L | Uobičajeni protokol ciljne usluge | Fiksiran u SSH naredbi |
-D | SOCKS pregovaranje, zatim promet aplikacije | Zatraženo od SOCKS klijenta |
Za jedan web poslužitelj 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-mjesto. Ne označavajte port 9080 kao SOCKS: on prosljeđuje bajtove jednom web poslužitelju navedenom u naredbi. Otvaranje stranice pod drugim imenom hosta također može utjecati na njezino virtualno hostanje, preusmjeravanja ili kolačiće.
Za SOCKS slušatelj oblik se mijenja:
ssh -N -D 127.0.0.1:1080 [email protected]
Konfigurirajte aplikaciju da koristi SOCKS na 127.0.0.1:1080. Unos te adrese izravno u adresnu traku preglednika šalje web zahtjev SOCKS slušatelju, još jedno nepodudaranje protokola.
OpenSSH priručnik dokumentira 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 udaljenom kraju određuje što pripada fiksnom prosljeđivanju. Prosljeđivanje postojećeg proxyja kroz SSH zadržava protokol i račun tog proxyja.