Obrátený tethering pre Android cez USB: príkazy, kontroly, návrat
Obrátený tethering posiela prevádzku telefónu cez relay na hostiteľovi. Postavte cestu z telefónu na hostiteľa, držte VPN hostiteľa v slučke a overte každý skok.
Obrátený tethering presúva prevádzku telefónu do počítača a vedie ju von spojením toho počítača. Samotný USB kábel to neurobí: telefón potrebuje službu zachytávania, ktorá prevezme jeho smerovanie, a počítač relay, ktorý tie pakety nesie ďalej. Cesta má štyri skoky: aplikácia, zachytávanie na telefóne, USB relay a výstup hostiteľa, a každý má iného vlastníka. Táto príručka tú cestu stavia, umiestňuje VPN hostiteľa tam, kam patrí, a kontroluje každý skok, kým výsledku uveríte.
Zmapujte skoky, kým niečo spustíte
Každý skok uplatňuje vlastnú politiku, preto funkčný výsledok na jednom konci nič nehovorí o druhom. Aplikácia volí cieľ a resolver, služba zachytávania rozhoduje, ktorá prevádzka vstúpi do relaye, relay posiela do socketov hostiteľa a smerovanie a VPN hostiteľa určujú adresu, ktorú cieľ nakoniec vidí.
| 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 |
Rolu zachytávania telefónu môže naraz držať len jeden klient služby VPN, takže druhá bežná VPN aplikácia sa na relay neukladá. Ak VPN patrí počítaču, služba zachytávania je prístupovým článkom k tomu počítaču, nie dôkazom, že vzdialený tunel už výsledok chráni.
Pripravte relay, kým sa telefónu dotknete
Gnirehtet je dokumentovaný príklad tejto architektúry: klient služby VPN bez rootu na telefóne plus relay prenášaný cez ADB na hostiteľovi, s podporou TCP a UDP cez IPv4. Jeho repozitár tiež uvádza, že projekt už nie je aktívne udržiavaný, takže ho berte ako referenčný návrh a funkčný nástroj pre laboratórium, nie ako podporovaný produkt na štandardizáciu na spravovanej flotile.
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
Najprv spustite adb devices. Telefón, ktorý neprijal ladiaci kľúč hostiteľa, sa hlási ako neautorizovaný a relay sa nepripojí, kým sa výzva na zariadení neprijme. gnirehtet run nainštaluje klienta, spustí relay a aktivuje zachytávanie; vo verzii, ktorá kroky oddeľuje, použite namiesto toho dokumentované podpríkazy install, relay a start.
Prístup cez ADB je vzťah ovládania zariadenia, nie sieťové nastavenie. Autorizujte len počítač, ktorý ovládate, a po dokončení úlohy toto oprávnenie odvolajte.
Vráťte VPN hostiteľa do cesty
Relay je bežný proces hostiteľa, takže jeho ďalšie spojenia sledujú smerovaciu tabuľku hostiteľa. Profil úplného tunela ich prenáša; rozdelený tunel možno nie. Ak VPN hostiteľa používa ovládanie po aplikáciách, pridajte binárku relaye do povolenej sady, inak relay ďalej používa fyzické rozhranie, zatiaľ čo prehliadač vyzerá chránený.
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
Spustite prvé dva príkazy pred pripojením VPN hostiteľa a po ňom. Ak sa adresa nezmení, relay nie je v tuneli, čokoľvek hovorí okno klienta. Tunel len pre privátne siete necháva aj verejné ciele na obvyklom výstupe hostiteľa, čo vyzerá ako únik, ale je to politika, ktorú ste nastavili.
DNS sa pre prevádzku cez relay rieši na hostiteľovi, takže resolver hostiteľa rozhoduje, ktorý server vidí mená. Nastavenie privátneho DNS na telefóne sa cez relay neprenáša a test resolvera na strane telefónu nepopíše dopyty hostiteľa.
Overte každý skok osobitne
Tri kontroly v tomto poradí: telefón dosiahne relay, relay dosiahne cieľ podľa politiky hostiteľa a aplikácia cieľ správne vyrieši a použije. Zastavte pri prvom zlyhaní namiesto opätovného načítania stránok a hádania.
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
Záznam siete VPN vo výpise konektivity ukazuje, že služba zachytávania je aktívna; vlastný log relaye ukazuje, či toky prichádzajú. Neprítomnosť v jednom z nich problém čisto rozdelí: žiadne zachytávanie znamená stranu telefónu, žiadne toky stranu hostiteľa.
Prehliadač, ktorý funguje na hostiteľovi, dokazuje cestu prehliadača hostiteľa, nie cestu procesu relaye. Porovnajte adresy, ktoré každý hlási, a otestujte privátny zdroj aj verejnú stránku, pretože tunel len pre privátne siete môže smerovať jedno a nie druhé.
Odstráňte inštaláciu a zvoľte správanie pri zlyhaní
Návrat je súčasťou príručky. Zastavte a odstráňte relay, odinštalujte klienta zachytávania a po dokončení úlohy odvolajte oprávnenie na ladenie hostiteľa v možnostiach pre vývojárov na telefóne.
gnirehtet stop
gnirehtet uninstall
adb kill-server
Rozhodnite, čo má telefón robiť, keď relay zmizne. Bez výslovnej voľby môže prejsť na mobilné dáta a uniknúť prevádzku, ktorú ste chceli smerovať, preto správanie blokovania spojení alebo politiku VPN nastavte zámerne a demontáž otestujte, kým sa na ňu spoliehate.
Zapíšte, ktorý hostiteľ bol autorizovaný, verziu relaye, politiku tunela hostiteľa a kroky demontáže. Práve tento záznam robí ďalšie nastavenie obráteného tetheringu opakovateľným, namiesto ďalšieho popoludnia znovuobjavovania.