Ëmgedréint Tethering fir Android iwwer USB: Kommandoen, Kontrollen, Réckbau
Ëmgedréint Tethering schéckt den Trafic vum Telefon iwwer en Relay um Host. Baut de Wee vum Telefon zum Host, haalt d’Host-VPN an der Schleif a kontrolléiert all Sprong.
Ëmgedréint Tethering verréckelt den Trafic vun engem Telefon op e Computer an dee geet duerch d’Verbindung vum Computer eraus. En USB-Kabel eleng mécht dat net: den Telefon brauch e Capture-Service, deen d’Routing iwwerhëlt, an de Computer en Relay, deen déi Paketer weider dréit. De Wee huet véier Spréng: Applikatioun, Capture um Telefon, USB-Relay an Host-Ausgang, an all eenzel huet ee anere Proprietär. Dëse Runbook baut dee Wee op, setzt d’Host-VPN op déi richteg Plaz a kontrolléiert all Sprong, ier Dir dem Resultat traut.
Maacht eng Kaart vun de Spréng, ier Dir eppes ausféiert
All Sprong applizéiert seng eege Politik, dofir seet en funktionéierend Resultat op enger Säit näischt iwwer déi aner. D’Applikatioun wielt en Zil an en Resolver, de Capture-Service entscheet, wéi en Trafic an de Relay kënnt, de Relay gëtt un d’Host-Sockets weider, an d’Routing an d’VPN vum Host bestëmmen d’Adress, déi d’Zil schlussendlech gesäit.
| 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 |
Just een eenzegen Notzer vum VPN-Service kann gläichzäiteg d’Capture-Roll vum Telefon halen, dofir stackt sech eng zweet gewéinlech VPN-App net iwwer de Relay. Wann d’VPN op de Computer gehéiert, ass de Capture-Service de Verbindungsglidd zu deem Computer, kee Beweis, datt en entfernten Tunnel d’Resultat schonn schützt.
Bereet de Relay vir, ier Dir den Telefon beréiert
Gnirehtet ass dat dokumentéiert Beispill vun dëser Architektur: e Client vum VPN-Service ouni Root um Telefon plus en Relay, deen iwwer ADB um Host gedroe gëtt, mat Ënnerstëtzung fir TCP an UDP iwwer IPv4. Säi Repository seet och, datt de Projet net méi aktiv ënnerhal gëtt, also behandelt en als Referenzdesign an als funktionéierend Instrument fir eng Labo, net als ënnerstëtzte Produkt, op deem eng verwalt Flott standardiséiert soll ginn.
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
Fëllt als éischt adb devices aus. En Telefon, deen de Debugging-Schlëssel vum Host net ugeholl huet, gëtt als net autoriséiert gemellt, an de Relay verbënnt sech net, bis d’Ufro um Apparat ugeholl ass. gnirehtet run installéiert de Client, start de Relay an aktivéiert d’Capture; op enger Versioun, déi d’Schrëtt trennt, benotzt amplaz déi dokumentéiert Ënnerkommandoen install, relay a start.
ADB-Zougang ass eng Apparatkontrollbezéiung, keng Netzwierkastellung. Autorisiert nëmmen e Computer, deen Dir kontrolléiert, a plangt dës Autorisatioun zréckzezéien, wann d’Aufgab fäerdeg ass.
Setzt d’Host-VPN zréck an de Wee
De Relay ass en normale Hostprozess, dofir follegen seng weider Verbindungen dem Routingstabell vum Host. E Volltunnel-Profil dréit se; en opgedeilten Tunnel vläicht net. Wann d’Host-VPN Kontrollen pro App benotzt, füügt de Relay-Binary an déi erlaabte Set dobäi, soss benotzt de Relay weider de physeschen Interface, während de Browser geschützt ausgesäit.
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
Fëllt déi éischt zwou Kommandoen aus, ier an nodeems Dir d’Host-VPN verbënnt. Wann sech d’Adress net ännert, ass de Relay net um Tunnel, wat d’Client-Fënster och seet. En nëmmen-private Tunnel léisst och ëffentlech Ziler um normalen Host-Ausgang, wat wéi e Leck ausgesäit, awer dat ass d’Politik, déi Dir agestallt hutt.
DNS gëtt um Host fir den Trafic duerch de Relay opgeléist, also entscheet de Resolver vum Host, wéi e Server d’Nimm gesäit. Eng privat DNS-Astellung um Telefon gëtt net iwwer de Relay gedroen, an en Resolver-Test op der Telefonssäit wäert d’Ufroe vum Host net beschreiwen.
Kontrolléiert all Sprong getrennt
Dräi Kontrollen, an dëser Reihenfolg: den Telefon erreecht de Relay, de Relay erreecht d’Zil ënner der Politik vum Host, an d’App léist d’Zil richteg op a benotzt et. Hält beim éischte Feeler un, amplaz Säiten nei ze lueden an ze raten.
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
En VPN-Netzwierkantrag am Konnektivitéits-Dump weist, datt de Capture-Service aktiv ass; de Log vum Relay selwer weist, ob Stréim ukommen. Feelt et an engem vun deenen zwee, deelt déi d’Problem propper: keng Capture heescht Telefonssäit, keng Stréim heescht Hostsäit.
E Browser, deen um Host funktionéiert, beweise de Wee vum Host-Browser, net dee vum Relay-Prozess. Vergläicht d’Adressen, déi all eenzel mellt, a testet eng privat Ressource souwéi eng ëffentlech Säit, well en nëmmen-private Tunnel eng ka routéieren an déi aner net.
Baut of a wielt d’Feelerverhalen
De Réckbau gehéiert zum Runbook. Stoppt a läscht de Relay, deinstalléiert de Capture-Client a zitt d’Debugging-Autorisatioun vum Host an den Entwéckleroptiounen vum Telefon zréck, wann d’Aufgab fäerdeg ass.
gnirehtet stop
gnirehtet uninstall
adb kill-server
Entscheet, wat den Telefon maache soll, wann de Relay verschwënnt. Ouni bewosst Wiel kann en op mobil Donnéeën zréckfalen an den Trafic lecken, deen Dir probéiert hutt ze routéieren, also setzt d’Blockéierverhalen oder d’VPN-Politik bewosst a testet den Ofbau, ier Dir iech dorop verloosst.
Notéiert den autoriséierten Host, d’Relay-Versioun, d’Tunnelpolitik vum Host an d’Ofbauschrëtt. Dee Rekord ass et, deen déi nächst Ëmgedréint-Tethering-Astellung widderhuelbar mécht, amplaz nach en Nomëtteg vum Neientdecken.