Gumawa ng Lokal na SOCKS Proxy gamit ang SSH
Gamitin ang dynamic forwarding ng OpenSSH sa 127.0.0.1, panatilihin ang process sa session at ibukod ang gumaganang listener sa naaabot na destination.
Kung may awtorisadong SSH access sa server, kayang gumawa ng OpenSSH ng SOCKS listener sa computer mo. Dala ng SSH connection ang forwarded traffic, at ang remote server ang kumokonekta sa destination.
Listener sa loopback lang
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
Palitan ang account at hostname. Kailangang payagan ng SSH server ang forwarding; maaaring limitahan ng administrator ang forwarding at mga destination nang hiwalay sa account login.
Gumagawa ang -D ng dynamic forwarding, at nililimitahan ng tahasang loopback address ang listener sa makinang ito. Inaalis ng -N ang remote command; inaalis ng -T ang pseudo-terminal. Iniiwasan ng ControlPath=none ang umiiral na sharing master, habang pinananatili ng ForkAfterAuthentication=no ang tawag na ito sa foreground.
Panatilihing tumatakbo ang process habang gamit ang proxy. Kung okupado ang port1080, pumili ng ibang hindi ginagamit na high port at baguhin ang client. Pinapalabas ng ExitOnForwardFailure=yes ang SSH kung hindi magawa ang listener.
Paggamit sa SOCKS endpoint
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/
Ang request na ito ay nagdedelaga ng paghawak sa pangalan ng destination sa SOCKS5. Kailangan ng ibang app ang sarili nilang SOCKS configuration; hindi makapagsasalita ng SOCKS sa listener na ito ang HTTP-proxy field.
Para tingnan kung aling process ang may-ari ng port:
ss -ltnp 'sport = :1080'
Dapat ang nilalayong SSH process ang may hawak ng loopback listener. Sinusuri ng request dito kung naaabot din ng remote server ang target. Gumamit ng destination na kontrolado mo kapag kailangan mong siyasatin ang naobserbahang exit.
Tagal ng session
Isinasara ng Ctrl-C ang SSH process, listener at forwarded connection. Kapag naputol ang SSH connection, hindi na rin magagamit ang proxy.
Sinusuri ng ExitOnForwardFailure ang setup. Hindi nito tinatapos ang SSH sa bawat sumunod na kabiguan ng destination connection, kaya hiwalay na siyasatin ang session, lokal na port at destination request.