Če imaš dostop SSH do strežnika, lahko z enim ukazom zaženeš lasten proxy SOCKS5: brskalnik promet pošlje na lokalna vrata, SSH ga šifrirano prenese na strežnik, s spletnimi stranmi pa se poveže že strežnik, z naslova IP strežnika. Uporabno je v javnem Wi-Fi (kavarna, hotel), v omrežju, ki filtrira nekatere strani, ali če moraš do storitve dostopati z naslova IP strežnika (na primer do skrbniškega vmesnika, dovoljenega le od tam).
Korake smo preizkusili iz macOS, s povezavo na strežnik AlmaLinux 10.2; v Linuxu deluje enako, v Windows 10/11 pa z vgrajenim odjemalcem OpenSSH (PowerShell).
1. Zagon tunela
Na svojem računalniku, v terminalu:
ssh -D 1337 -C -N felhasznalo@szervercime
-D 1337: na lastnem računalniku se na vratih 1337 odpre proxy SOCKS. Vrata so poljubna (prosta vrata nad 1024); če so zasedena, izberi druga.-C: stisne podatke v tunelu (pomaga pri počasni povezavi).-N: na strežniku ne zažene ukaza, le vzdržuje tunel.
Če SSH ne teče na vratih 22, jih navedi s stikalom -p (-p 2255). Ukaz teče, dokler ne zapreš terminala ali ga ne ustaviš s Ctrl+C. Če ga želiš poganjati v ozadju, dodaj stikalo -f; takrat moraš za ustavitev poiskati in ustaviti proces (pkill -f "ssh -D 1337").
Proxy je privzeto dosegljiv le z lastnega računalnika (127.0.0.1), drugi računalniki v omrežju ga ne morejo uporabljati; tega ne spreminjaj.
2. Preizkus iz ukazne vrstice
Preden nastaviš brskalnik, preveri, ali deluje:
curl -sI --socks5-hostname 127.0.0.1:1337 https://www.awh.hu/ | head -1
V preizkusu je bil odgovor HTTP/2 200. --socks5-hostname pomeni, da tudi ime domene razreši strežnik, ne tvoj računalnik (glej spodaj, pri DNS).
3. Nastavitev brskalnika
Firefox
Firefox ima lastno nastavitev proxyja, zato skozi tunel gre le promet brskalnika. V nastavitvah poišči besedo „proxy”, odpri omrežne nastavitve in izberi ročno nastavitev proxyja:
- Strežnik SOCKS:
127.0.0.1, vrata:1337, vrsta: SOCKS v5; - vklopi pošiljanje poizvedb DNS prek proxyja (ob SOCKS v5).
Chrome, Edge
Ta uporabljata sistemsko nastavitev proxyja, ki vpliva na vse programe računalnika. Preprosteje je, če brskalnik zaženeš v ločenem izvodu, s stikalom ukazne vrstice, na primer v macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --proxy-server="socks5://127.0.0.1:1337" --user-data-dir=/tmp/chrome-proxy
V Windows ista stikala navedeš za chrome.exe. Zaradi ločenega --user-data-dir se ta izvod ne meša z običajnim profilom.
Preverjanje
Odpri stran „kakšen je moj naslov IP” pred vklopom proxyja in po njem: s proxyjem se mora prikazati naslov IP strežnika. Če se tunel ustavi, brskalnik vrne napako in ne preklopi tiho na neposredno povezavo: v preizkusu Chrome po ustavitvi tunela strani ni naložil, z napako ERR_PROXY_CONNECTION_FAILED.
Kaj je šifrirano in kaj ne?
- Med lastnim računalnikom in strežnikom je ves promet šifriran, šifrira ga SSH. Tega odseka upravljavec lokalnega omrežja (na primer Wi-Fi v kavarni) ne vidi in ga ne more spreminjati.
- Med strežnikom in spletno stranjo je promet šifriran le, če stran uporablja HTTPS; pri navadnem HTTP je na tem odseku berljiv.
- DNS: če v brskalniku (ali pri
curls stikalom--socks5-hostname) vklopiš pošiljanje DNS prek proxyja, tudi imena domen razreši strežnik. Če ne, lahko lokalno omrežje vidi, katere strani obiskuješ, tudi če sam promet gre skozi tunel.
Proxy SOCKS ni VPN: uporablja ga le program, v katerem si ga nastavil. Drugi programi in izvod brskalnika, zagnan brez proxyja, se še naprej povezujejo neposredno.
Če ne deluje
curl: (97) connection to proxy closed, v brskalniku napaka povezave: na strežniku je morda posredovanje prepovedano. V preizkusu se je z nastavitvijoAllowTcpForwarding nozgodilo natanko to. Preveri na strežniku:sudo sshd -T | grep allowtcpforwarding; osnovna vrednost jeyes.bind [127.0.0.1]:1337: Address already in use: vrata so zasedena (pogosto tunel, prej zagnan s-f). Izberi druga vrata ali ustavi starega.- Omrežje prepoveduje tudi SSH: nekatera podjetniška in javna omrežja spustijo ven le spletna vrata. Takrat lahko SSH na strežniku posluša še na dodatnih vratih, na primer na 443, če na njih ne teče spletni strežnik. Dodajanje vrat (SELinux, požarni zid) opisuje članek Varnostne nastavitve strežnika SSH.
Za lasten proxy zadošča tudi majhen KVM VPS; promet izhaja z naslova IP podatkovnega centra.
