Prijavljujete se preko SSH, dodajete -D 1080 i komanda uspije. Sada na telefonu postoji SOCKS osluškivač, a pola aplikacija ipak izlazi preko mobilnih podataka. To je normalan ishod, a ne pokvaren tunel: ssh -D stvara proxy odredište, a Android aplikacije koriste proxy samo ako ih nešto na to prisili. Prolazak kroz lanac korak po korak pokazuje gdje svaki dio posla zapravo živi.

Počnite tamo gdje saobraćaj počinje

Odaberite jednu aplikaciju koja bi trebala koristiti tunel i provjerite ima li vlastito proxy podešavanje. Preglednik s poljem za SOCKS je lak slučaj: usmjerite ga na 127.0.0.1:1080, uključite udaljeni DNS ako ta opcija postoji i zahtjev prolazi. Chat klijent, aplikacija za mape ili igra bez tog polja ne mogu koristiti osluškivač i ništa što upišete u SSH komandu to ne mijenja.

Prije nego uključite bilo šta drugo, dokažite da osluškivač radi iz same ljuske telefona s klijentom koji izravno govori SOCKS:

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

Adresa koja se vrati treba biti adresa SSH servera, ne telefona. Ako jest, proxy polovina je gotova, a ostatak posla je pokrivenost. Ako nije, prvo popravite SSH stranu: autentifikaciju ključem, sposobnost servera da dosegne odredište i vlastiti izlaz SSH servera.

Dodajte dio 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 virtualno sučelje i prosljeđuje odabrani saobraćaj u lokalni SOCKS osluškivač. Lanac tada glasi aplikacija, adapter, SOCKS osluškivač, SSH veza, odredište.

Instalirajte adapter, dajte mu VPN dozvolu i odaberite aplikacije ili rute koje treba hvatati. Ikona ključa u statusnoj traci tada predstavlja adapter, a ne zaseban komercijalni VPN. Android dopušta samo jednu aktivnu vezu VPN usluge po korisničkom profilu, pa pokretanje druge VPN aplikacije ne dodaje sloj iznad lanca, nego se takmiči za istu ulogu.

To je i korak na kojem vas uspješan test može zavarati. Ako je adapter postavljen da hvata samo preglednik koji ste već usmjerili na proxy, sve radi i ništa drugo nije pokriveno. Pročitajte listu hvatanja prije nego zaključite da je uređaj u tunelu.

Držite SSH promet izvan hvatanja

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

Integrirane implementacije štite vlastiti transportni socket. S odvojenim aplikacijama potrebno je podržano izuzeće: ostavite SSH aplikaciju izvan hvatanja ili izuzmite SSH odredište po adresi. Oba imaju cijenu. Izuzimanje cijele terminalne aplikacije uklanja iz tunela i njezinu nepovezanu mrežnu aktivnost, a izuzeće po adresi se kvari kad se adresa servera promijeni ili kad se ime sljedeći put razriješi drugačije.

Provjerite izuzeće izvana: ponovno povežite adapter, pa potvrdite da SSH sesija preživljava i da proxy zahtjev još javlja adresu servera. Sesija koja radi do pokretanja adaptera, a zatim se smrzne, jest petlja.

Pratite DNS i UDP do kraja lanca

Dinamički forward OpenSSH-a prenosi TCP veze. On nije UDP asocijacija ni ICMP transport i adapter ne može izmisliti UDP prosljeđivanje primanjem UDP paketa. Sve što insistira na UDP-u, uključujući QUIC i WebRTC medije, ili pada ili se vraća na TCP, zavisno od aplikacije.

DNS traži vlastitu odluku. Aplikacija koja ime razrješava lokalno šalje upit preko uobičajenog resolvera prije povezivanja, pa tunel nosi vezu, ali ne i traženje. Klijent koji poznaje proxy i ima opciju udaljenog DNS-a to izbjegava; uhvaćena aplikacija bez te opcije ne. Provjerite koji je resolver odgovorio umjesto da pretpostavite da ga je adapter promijenio.

Držite SOCKS osluškivač vezan na loopback, provjerite host ključ SSH servera pri prvoj upotrebi i ostavite uobičajenu HTTPS provjeru za završnu stranicu. SSH štiti dio od telefona do servera; ne šifruje ono što server radi nakon toga.

Provjerite dva životna ciklusa i odlučite

Adapter i SSH sesija imaju odvojene životne cikluse. Ako SSH padne dok adapter nastavlja hvatati, aplikacije mogu visjeti bez jasne greške, jer njihovi paketi još ulaze u virtualno sučelje koje više nema radni izlaz. Ako adapter stane, aplikacije ili idu izravno ili su blokirane, zavisno od VPN politike uređaja.

Isprobajte oba smjera namjerno: ubijte SSH sesiju dok adapter radi, zatim zaustavite adapter dok SSH ostaje živ. Ono što telefon u svakom slučaju radi jest politika koju zaista uvodite, šta god tvrdila uputa za postavljanje.

Ako tok rada traži pokrivenost cijelog uređaja s predvidljivim načinom otkaza, iskren odgovor je pravi IP VPN ili održavan adapter napravljen za ovaj lanac. Shell sesija koja radi pored nepovezane aplikacije za hvatanje nije održavan tunel uređaja; to su dvije komponente bez dogovora o tome šta se dešava kad jedna završi.

Povezani članci