Prijavljuješ se preko SSH-a, dodaješ -D 1080 i naredba uspeva. Sada na telefonu postoji SOCKS osluškivač, a polovina aplikacija i dalje izlazi preko mobilnih podataka. To je normalan ishod, a ne pokvaren tunel: ssh -D pravi proxy završnu tačku, a Android aplikacije koriste proxy samo ako ih nešto na to primora. Prolazak kroz lanac korak po korak pokazuje gde svaki deo posla zaista živi.

Počni tamo gde saobraćaj počinje

Izaberi jednu aplikaciju koja bi trebalo da koristi tunel i proveri da li ima sopstveno proxy podešavanje. Pregledač sa SOCKS poljem je jednostavan slučaj: usmeri ga na 127.0.0.1:1080, uključi udaljeni DNS ako podešavanje postoji, i zahtev prolazi. Chat klijent, aplikacija za mape ili igra bez takvog polja nemaju načina da koriste osluškivač, i ništa što upišeš u SSH naredbu to ne menja.

Pre nego što uključiš bilo šta drugo, dokaži da osluškivač radi iz sopstvene školjke telefona sa klijentom koji direktno govori SOCKS:

ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me

Adresa koja se vraća treba da bude adresa SSH servera, a ne telefona. Ako jeste, proxy polovina je gotova i ostatak posla se odnosi na pokrivenost. Ako nije, prvo popravi SSH stranu: autentifikaciju ključem, sposobnost servera da dosegne odredište i sopstveni izlaz SSH servera.

Dodaj deo koji Android traži

Aplikacije bez proxy podešavanja trebaju nešto što hvata njihove pakete i pretvara ih u proxy veze. Na uređaju bez roota to je adapter VPN usluge: aplikacija koja preuzima virtuelni interfejs i prosleđuje izabrani saobraćaj lokalnom SOCKS osluškivaču. Lanac postaje aplikacija, adapter, SOCKS osluškivač, SSH veza, odredište.

Instaliraj adapter, daj mu VPN dozvolu i izaberi aplikacije ili rute koje treba da hvata. Ikona ključa u statusnoj traci tada predstavlja adapter, a ne zaseban komercijalni VPN. Android dozvoljava jednu aktivnu vezu VPN usluge po korisničkom profilu, pa pokretanje druge VPN aplikacije ne dodaje sloj lancu: ona se takmiči za istu ulogu.

Ovo je i korak u kome uspešan test može da te zavara. Ako je adapter podešen da hvata samo pregledač koji si već usmerio na proxy, sve radi i ništa drugo nije pokriveno. Pročitaj listu hvatanja pre nego što zaključiš da je uređaj u tunelu.

Drži SSH prenos izvan hvatanja

Sama SSH veza ne sme da se vraća u SOCKS tunel koji održava. Ako adapter hvata saobraćaj SSH aplikacije, tunel zavisi od veze koja čeka tunel, a rezultat je petlja koja se zaglavi ili padne čim adapter krene.

Integrisane implementacije štite sopstveni prenosni socket. Sa odvojenim aplikacijama treba ti podržano izuzeće: ostavi SSH aplikaciju izvan hvatanja ili izuzmi SSH završnu tačku po adresi. Oba imaju cenu. Izuzeće cele terminalne aplikacije uklanja iz tunela i njenu nepovezanu mrežnu aktivnost, a izuzeće adrese se kvari kada se adresa servera promeni ili kada se ime pri sledećoj vezi razreši drugačije.

Proveri izuzeće spolja: ponovo poveži adapter, zatim potvrdi da SSH sesija preživljava i da proxy zahtev još prijavljuje adresu servera. Sesija koja radi dok adapter ne krene i zatim se smrzne jeste ta petlja.

Prati DNS i UDP do kraja lanca

OpenSSH dinamičko prosleđivanje prenosi TCP veze. To nije UDP-associate ni ICMP prenos, i adapter ne može da izmisli UDP prosleđivanje prihvatanjem UDP paketa. Sve što insistira na UDP-u, uključujući QUIC i WebRTC medije, ili će pasti ili će se vratiti na TCP, zavisno od aplikacije.

DNS traži sopstvenu odluku. Aplikacija koja ime razrešava lokalno šalje upit kroz uobičajeni resolver pre povezivanja, pa tunel prenosi vezu ali ne i pretragu. Proxy svestan klijent sa opcijom udaljenog DNS-a to izbegava; uhvaćena aplikacija bez nje ne. Proveri koji je resolver odgovorio umesto da pretpostaviš da ga je adapter promenio.

Drži SOCKS osluškivač vezan za loopback, proveri host ključ SSH servera pri prvom korišćenju i ostavi uobičajenu HTTPS proveru na mestu za završni sajt. SSH štiti deo telefon-do-servera; ne šifruje ono što server radi posle.

Proveri dva životna ciklusa i odluči

Adapter i SSH sesija imaju odvojene životne cikluse. Ako SSH padne dok adapter nastavlja da hvata, aplikacije mogu da vise bez očigledne greške, jer njihovi paketi još ulaze u virtuelni interfejs koji više nema radni izlaz. Ako adapter stane, aplikacije ili idu direktno ili bivaju blokirane, zavisno od VPN politike uređaja.

Namerno testiraj oba smera: ubij SSH sesiju dok adapter radi, zatim zaustavi adapter dok SSH ostaje gore. Ono što telefon čini u svakom slučaju jeste politika koju zaista uvodiš, šta god tvrdila uputstva za instalaciju.

Ako radni tok traži pokrivenost celog uređaja sa predvidivim načinom otkaza, pravi IP VPN ili održavan adapter namenjen ovom lancu je iskren odgovor. Školjka sesija ostavljena da radi pored nepovezane aplikacije za hvatanje nije održavan tunel uređaja; to su dve komponente bez dogovora o tome šta se dešava kada jedna od njih završi.

Povezani članci