Med tillåten SSH-åtkomst till en server kan OpenSSH skapa en SOCKS-lyssnare på din dator. SSH-anslutningen bär den vidarebefordrade trafiken och fjärrservern ansluter till destinationen.

En lyssnare enbart på loopback

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

Byt konto och värdnamn. SSH-servern måste tillåta vidarebefordran; administratören kan begränsa vidarebefordran och destinationer oberoende av kontoinloggningen.

-D skapar dynamisk vidarebefordran och den uttryckliga loopbackadressen begränsar lyssnaren till denna dator. -N utelämnar ett fjärrkommando; -T utelämnar en pseudoterminal. ControlPath=none undviker en befintlig delningsmaster medan ForkAfterAuthentication=no håller denna körning i förgrunden.

Håll processen igång när du använder proxyn. Om port 1080 är upptagen, välj en annan ledig hög port och uppdatera klienten. ExitOnForwardFailure=yes får SSH att avsluta om lyssnaren inte kan skapas.

Använd SOCKS-slutpunkten

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

Denna begäran delegerar hanteringen av destinationsnamnet genom SOCKS5. Andra program behöver egna SOCKS-inställningar; ett HTTP-proxyfält kan inte tala SOCKS med denna lyssnare.

Så kontrollerar du vilken process som äger porten:

ss -ltnp 'sport = :1080'

Den avsedda SSH-processen bör äga en loopbacklyssnare. En begäran genom den testar om fjärrservern också når målet. Använd en kontrollerad destination när du behöver granska den observerade utgången.

Sessionens livslängd

Ctrl-C stänger SSH-processen, lyssnaren och de vidarebefordrade anslutningarna. En bruten SSH-anslutning gör också proxyn otillgänglig.

ExitOnForwardFailure kontrollerar uppsättningen. Det avslutar inte SSH vid varje senare misslyckad destinationsanslutning, så diagnostisera session, lokal port och destinationsbegäran separat.

Relaterade artiklar