Tethering i kundërt për Android përmes USB: komandat, kontrollet, kthimi
Tethering-u i kundërt e dërgon trafikun e telefonit përmes një releje në host. Ndërtoni rrugën nga telefoni te host-i, mbani VPN-në e host-it në lak dhe verifikoni çdo kërcim.
Tethering-u i kundërt e zhvendos trafikun e telefonit në një kompjuter dhe e nxjerr jashtë përmes lidhjes së atij kompjuteri. Vetëm një kabllo USB nuk e bën këtë: telefoni ka nevojë për një shërbim kapjeje që merr përsipër rrugëzimin, dhe kompjuteri për një rele që i çon ato paketa më tej. Rruga ka katër kërcime: aplikacioni, kapja në telefon, releja USB dhe dalja e host-it, dhe secili ka një pronar tjetër. Ky manual e ndërton atë rrugë, e vendos VPN-në e host-it në vendin e vetë dhe verifikon çdo kërcim përpara se t’i besoni rezultatit.
Hartëzoni kërcimet përpara se të ekzekutoni çdo gjë
Çdo kërcim zbaton politikën e vet, prandaj një rezultat që funksionon në njërin skaj nuk thotë asgjë për tjetrin. Aplikacioni zgjedh një destinacion dhe një zgjidhës, shërbimi i kapjes vendos cili trafik hyn në rele, releja përcjell në socket-et e host-it, dhe rrugëzimi e VPN-ja e host-it vendosin adresën që destinacioni e sheh në fund.
| 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 |
Vetëm një klient i shërbimit VPN mund të mbajë rolin e kapjes së telefonit në një kohë, kështu që një aplikacion i dytë i zakonshëm VPN nuk grumbullohet mbi rele. Nëse VPN-ja i përket kompjuterit, shërbimi i kapjes është lidhja e aksesit drejt atij kompjuteri, jo prova se një tunel në distancë tashmë e mbron rezultatin.
Përgatitni relen përpara se të prekni telefonin
Gnirehtet është shembulli i dokumentuar i kësaj arkitekture: një klient i shërbimit VPN pa root në telefon plus një rele e transportuar përmes ADB në host, që mbështet TCP dhe UDP mbi IPv4. Depoja e tij shprehet gjithashtu se projekti nuk mbahet më aktivisht, prandaj trajtojeni si projekt referimi dhe mjet funksional për një laborator, jo si produkt i mbështetur për t’u standardizuar në një flotë të administruar.
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
Ekzekutoni së pari adb devices. Një telefon që nuk e ka pranuar çelësin e korrigjimit të host-it raportohet si i paautorizuar, dhe releja nuk lidhet derisa kërkesa në pajisje të pranohet. gnirehtet run instalon klientin, nis relen dhe aktivizon kapjen; në një version që i ndan hapat, përdorni në vend të kësaj nënkomandat e dokumentuara install, relay dhe start.
Aksesi ADB është një marrëdhënie kontrolli pajisjeje, jo një rregullim rrjeti. Autorizoni vetëm një kompjuter që e kontrolloni, dhe planifikoni të tërhiqni atë autorizim kur detyra të përfundojë.
Kthejeni VPN-në e host-it në rrugë
Releja është një proces i zakonshëm i host-it, prandaj lidhjet e saj të mëtejshme ndjekin tabelën e rrugëzimit të host-it. Një profil tuneli të plotë i çon ato; një tunel i ndarë mund të mos i çojë. Nëse VPN-ja e host-it përdor kontrolle për çdo aplikacion, shtoni binarin e reles në grupin e lejuar, përndryshe releja vazhdon të përdorë ndërfaqen fizike ndërsa shfletuesi duket i mbrojtur.
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
Ekzekutoni dy komandat e para përpara dhe pas lidhjes së VPN-së së host-it. Nëse adresa nuk ndryshon, releja nuk është në tunel, çfarëdo që thotë dritarja e klientit. Një tunel vetëm për rrjetat private i lë destinacionet publike në daljen normale të host-it, gjë që duket si rrjedhje por është politika që keni vendosur.
DNS-ja zgjidhet në host për trafikun përmes reles, prandaj zgjidhësi i host-it vendos cili server i sheh emrat. Një rregullim DNS privat në telefon nuk kalon përmes reles, dhe një test zgjidhësi në anën e telefonit nuk do t’i përshkruajë kërkimet e host-it.
Verifikoni çdo kërcim veçmas
Tri kontrolle, në këtë rend: telefoni arrin relen, releja arrin destinacionin sipas politikës së host-it, dhe aplikacioni e zgjidh dhe e përdor saktë atë destinacion. Ndaluni në dështimin e parë në vend që të ringarkoni faqe dhe të hamendësoni.
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
Një zë rrjeti VPN në dump-in e lidhshmërisë tregon se shërbimi i kapjes është aktiv; regjistri i vetë reles tregon nëse vijnë rrjedha. Mungesa në njërën prej tyre e ndan pastër problemin: pa kapje është ana e telefonit, pa rrjedha ana e host-it.
Një shfletues që punon në host provon rrugën e shfletuesit të host-it, jo atë të procesit të reles. Krahasoni adresat që raporton secili, dhe provoni një burim privat si dhe një faqe publike, sepse një tunel vetëm për rrjetat private mund të rrugëzojë njërën dhe jo tjetrën.
Çmontoni dhe zgjidhni sjelljen në rast dështimi
Kthimi është pjesë e manualit. Ndaloni dhe hiqni relen, çinstaloni klientin e kapjes, dhe tërhiqni autorizimin e korrigjimit të host-it nga opsionet e zhvilluesit të telefonit kur detyra të përfundojë.
gnirehtet stop
gnirehtet uninstall
adb kill-server
Vendosni çfarë duhet të bëjë telefoni kur releja zhduket. Pa një zgjedhje të qartë mund të bjerë përsëri në të dhënat celulare dhe të rrjedhë trafikun që po përpiqeshit të rrugëzonit, prandaj vendosni me qëllim sjelljen e bllokimit të lidhjeve ose politikën e VPN-së dhe provoni çmontimin përpara se të mbështeteni tek ajo.
Regjistroni cili host u autorizua, versionin e reles, politikën e tunelit të host-it dhe hapat e çmontimit. Ky regjistrim është ai që e bën konfigurimin e radhës të tethering-ut të kundërt të përsëritshëm në vend të një pasditeje tjetër rizbulimi.