Met toegestane SSH-toegang tot een server kan OpenSSH een SOCKS-listener op je computer maken. De SSH-verbinding draagt het doorgestuurde verkeer en de externe server verbindt met de bestemming.

Een listener alleen op loopback

ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]

Vervang account en hostnaam. De SSH-server moet doorsturen toestaan; de beheerder kan doorsturen en bestemmingen los van de accountlogin beperken.

-D maakt dynamisch doorsturen en het expliciete loopbackadres beperkt de listener tot deze machine. -N laat een extern commando weg; -T laat een pseudoterminal weg. ControlPath=none vermijdt een bestaande verbindingsdelingsmaster, terwijl ForkAfterAuthentication=no deze aanroep op de voorgrond houdt.

Laat het proces draaien zolang je de proxy gebruikt. Is poort 1080 bezet, kies dan een andere vrije hoge poort en pas de client aan. ExitOnForwardFailure=yes laat SSH afsluiten als de listener niet kan worden gemaakt.

Het SOCKS-eindpunt gebruiken

curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/

Dit verzoek delegeert de afhandeling van de bestemmingsnaam via SOCKS5. Andere toepassingen hebben een eigen SOCKS-configuratie nodig; een HTTP-proxyveld kan geen SOCKS met deze listener spreken.

Zo controleer je welk proces de poort bezit:

ss -ltnp 'sport = :1080'

Het bedoelde SSH-proces hoort een loopbacklistener te bezitten. Een verzoek erdoorheen controleert of de externe server ook het doel bereikt. Gebruik een beheerde bestemming wanneer je de waargenomen uitgang wilt inspecteren.

Levensduur van de sessie

Ctrl-C sluit het SSH-proces, de listener en doorgestuurde verbindingen. Een verbroken SSH-verbinding maakt de proxy eveneens onbeschikbaar.

ExitOnForwardFailure controleert het opzetten. Het beëindigt SSH niet zodra een latere bestemmingsverbinding mislukt; onderzoek sessie, lokale poort en bestemmingsverzoek dus apart.

Gerelateerde artikelen