Med autoriseret SSH-adgang til en server kan OpenSSH oprette en SOCKS-lytter på din computer. SSH-forbindelsen transporterer den videresendte trafik, og den eksterne server opretter destinationsforbindelsen.

En lytter kun på loopback

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

Erstat konto og værtsnavn. SSH-serveren skal tillade videresendelse; administratoren kan begrænse videresendelse og destinationer uafhængigt af kontologin.

-D opretter dynamisk videresendelse, og den eksplicitte loopbackadresse begrænser lytteren til denne maskine. -N udelader en fjernkommando; -T udelader en pseudoterminal. ControlPath=none undgår en eksisterende delingsmaster, mens ForkAfterAuthentication=no holder dette kald i forgrunden.

Hold processen kørende, mens du bruger proxien. Hvis port 1080 er optaget, vælg en anden ledig høj port og opdatér klienten. ExitOnForwardFailure=yes får SSH til at afslutte, hvis lytteren ikke kan oprettes.

Brug SOCKS-endepunktet

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

Denne forespørgsel uddelegerer håndtering af destinationsnavnet gennem SOCKS5. Andre programmer kræver egen SOCKS-konfiguration; et HTTP-proxyfelt kan ikke tale SOCKS til denne lytter.

Sådan kontrollerer du, hvilken proces der ejer porten:

ss -ltnp 'sport = :1080'

Den tilsigtede SSH-proces bør eje en loopbacklytter. En forespørgsel gennem den tester, om den eksterne server også kan nå målet. Brug en kontrolleret destination, når du vil undersøge den observerede udgang.

Sessionens levetid

Ctrl-C lukker SSH-processen, lytteren og videresendte forbindelser. En afbrudt SSH-forbindelse gør også proxien utilgængelig.

ExitOnForwardFailure kontrollerer opsætningen. Det afslutter ikke SSH ved hver senere fejl i en destinationsforbindelse, så diagnosticér session, lokal port og destinationsforespørgsel separat.

Relaterede artikler