Port preposlaný cez SSH nie je vždy SOCKS proxy
Rozlíšte pevné lokálne preposielanie SSH od dynamického SOCKS poslucháča pred konfiguráciou aplikácie.
Vytvoríte SSH tunel, zadáte 127.0.0.1 a jeho port do nastavení proxy v prehliadači a nič sa nenačíta. Poslucháč môže fungovať úplne správne. Možno len čaká na nesprávny druh prevádzky.
| Preposielanie | Čo lokálna aplikácia odosiela | Voľba cieľa |
|---|---|---|
-L | Bežný protokol cieľovej služby | Pevne dané v príkaze SSH |
-D | Vyjednávanie SOCKS, potom prevádzka aplikácie | Vyžiadané klientom SOCKS |
Pre jediný webový server je toto pevné preposielanie:
ssh -N -L 127.0.0.1:9080:web.example.com:80 [email protected]
Navštívte http://127.0.0.1:9080/ ako webovú stránku. Neoznačujte port 9080 ako SOCKS: preposiela bajty jedinému webovému serveru uvedenému v príkaze. Otvorenie stránky pod iným názvom hostiteľa môže tiež ovplyvniť jej virtuálny hosting, presmerovania alebo cookies.
Pre SOCKS poslucháč sa tvar mení:
ssh -N -D 127.0.0.1:1080 [email protected]
Nastavte aplikáciu, aby používala SOCKS na 127.0.0.1:1080. Zadanie tejto adresy priamo do adresného riadka prehliadača odošle webovú požiadavku SOCKS poslucháčovi, ďalší nesúlad protokolov.
Manuál OpenSSH dokumentuje obe formy. Existuje užitočná výnimka: preposlanie existujúceho HTTP proxy pomocou -L vytvorí lokálny port, ktorý hovorí protokolom HTTP proxy, pretože jeho pevný cieľ je sám HTTP proxy. Služba na vzdialenom konci určuje, čo patrí do pevného preposielania. Preposlanie existujúceho proxy cez SSH zachováva protokol a účet tohto proxy.