Obrnuti tethering za Android preko USB-a: naredbe, provjere, vraćanje
Obrnuti tethering preusmjerava promet telefona kroz relej na hostu. Izgradite put od telefona do hosta, zadržite VPN hosta u petlji i provjerite svaki korak.
Obrnuti tethering prenosi promet telefona na računar i izvodi ga kroz vezu tog računara. Sam USB kabel to ne čini: telefonu treba usluga snimanja koja preuzima njegovo rutiranje, a računaru relej koji te pakete nosi dalje. Put ima četiri koraka: aplikacija, snimanje na telefonu, USB relej i izlaz hosta, a svaki ima drugog vlasnika. Ovaj priručnik gradi taj put, postavlja VPN hosta gdje mu je mjesto i provjerava svaki korak prije nego što povjerujete rezultatu.
Mapirajte korake prije nego što bilo šta pokrenete
Svaki korak primjenjuje svoju politiku, zato radni rezultat na jednom kraju ne govori ništa o drugom. Aplikacija bira odredište i resolver, usluga snimanja odlučuje koji promet ulazi u relej, relej prosljeđuje u host socketove, a rutiranje i VPN hosta određuju adresu koju odredište na kraju vidi.
| Hop | Owner | What it decides |
|---|---|---|
| Application request | The app | Destination, resolver, address family |
| Capture service | Phone VpnService app | Which traffic enters the relay at all |
| ADB relay | Host process | Forwarding phone flows to host sockets |
| Host egress | Host routing and VPN | Exit address and host policy |
Samo jedan klijent VPN usluge može istovremeno držati ulogu snimanja na telefonu, pa se druga obična VPN aplikacija ne slaže preko releja. Ako VPN pripada računaru, usluga snimanja je pristupna veza prema tom računaru, a ne dokaz da udaljeni tunel već štiti rezultat.
Pripremite relej prije nego što dotaknete telefon
Gnirehtet je dokumentovani primjer ove arhitekture: klijent VPN usluge bez root prava na telefonu plus relej koji se prenosi preko ADB-a na hostu, uz podršku za TCP i UDP preko IPv4. Njegov repozitorij također navodi da se projekat više ne održava aktivno, pa ga tretirajte kao referentni dizajn i radni alat za laboratoriju, a ne kao podržan proizvod za standardizaciju na upravljanom fondu uređaja.
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
Prvo pokrenite adb devices. Telefon koji nije prihvatio ključ za otklanjanje grešaka hosta prijavljuje se kao neovlašten i relej se neće spojiti dok se upit na uređaju ne prihvati. gnirehtet run instalira klijenta, pokreće relej i aktivira snimanje; na verziji koja razdvaja korake koristite dokumentovane podnaredbe install, relay i start.
ADB pristup je odnos kontrole nad uređajem, a ne mrežno podešavanje. Ovlastite samo računar koji kontrolišete i planirajte da to ovlaštenje opozovete kad zadatak završi.
Vratite VPN hosta u put
Relej je običan proces na hostu, pa njegove dalje veze slijede hostovu tablicu rutiranja. Profil punog tunela ih nosi; podijeljeni tunel možda ne. Ako VPN hosta koristi kontrole po aplikacijama, dodajte relejski binarni fajl u dozvoljeni skup, inače relej nastavlja koristiti fizički interfejs dok preglednik izgleda zaštićeno.
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
Pokrenite prve dvije naredbe prije i poslije povezivanja VPN-a hosta. Ako se adresa ne promijeni, relej nije na tunelu, šta god govorio prozor klijenta. Tunel samo za privatne mreže također ostavlja javna odredišta na uobičajenom izlazu hosta, što izgleda kao curenje ali je politika koju ste postavili.
DNS se za promet kroz relej rješava na hostu, pa hostov resolver odlučuje koji server vidi imena. Postavka privatnog DNS-a na telefonu ne prenosi se preko releja, a test resolvera na telefonu neće opisati hostove pretrage.
Provjerite svaki korak zasebno
Tri provjere, ovim redom: telefon stiže do releja, relej stiže do odredišta pod politikom hosta, a aplikacija ispravno rješava i koristi to odredište. Zaustavite se na prvom neuspjehu umjesto da ponovo učitavate stranice i nagađate.
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
Unos VPN mreže u ispisu povezanosti pokazuje da je usluga snimanja aktivna; vlastiti dnevnik releja pokazuje dolaze li tokovi. Odsutnost u jednom od njih čisto dijeli problem: nema snimanja znači stranu telefona, nema tokova znači stranu hosta.
Preglednik koji radi na hostu dokazuje put hostovog preglednika, a ne put procesa releja. Uporedite adrese koje svaki od njih prijavljuje i testirajte privatni resurs kao i javnu stranicu, jer tunel samo za privatne mreže može rutirati jedno, a ne drugo.
Rastavite i odaberite ponašanje pri kvaru
Vraćanje je dio priručnika. Zaustavite i uklonite relej, deinstalirajte klijenta za snimanje i opozovite ovlaštenje za otklanjanje grešaka hosta u razvojnim opcijama telefona kad zadatak završi.
gnirehtet stop
gnirehtet uninstall
adb kill-server
Odlučite šta telefon treba raditi kad relej nestane. Bez jasnog izbora može se vratiti na mobilne podatke i propustiti promet koji ste pokušavali rutirati, zato namjerno postavite ponašanje blokiranja veza ili politiku VPN-a i testirajte rastavljanje prije nego što se na njega oslonite.
Zapišite koji je host ovlašten, verziju releja, politiku tunela hosta i korake rastavljanja. Taj zapis čini sljedeće postavljanje obrnutog tetheringa ponovljivim umjesto još jednog popodneva ponovnog otkrivanja.