Omvendt tethering flyttar trafikken til ein telefon til ein datamaskin og fører han ut gjennom tilkoplinga til datamaskinen. Ein USB-kabel åleine gjer ikkje dette: telefonen treng ein fangsteneste som tek over rutinga, og datamaskinen treng eit relé som ber pakkane vidare. Stien har fire hopp: applikasjon, fangst på telefonen, USB-relé og utgangen til verten, og kvart hopp har ein annan eigar. Denne køyreboka byggjer stien, set VPN-en til verten der han høyrer heime, og kontrollerer kvart hopp før du trur på resultatet.

Kartlegg hoppa før du køyrer noko

Kvart hopp brukar si eiga politikk, difor seier eit fungerande resultat i den eine enden ingenting om den andre. Applikasjonen vel ein destinasjon og ein resolver, fangstenesta avgjer kva trafikk som kjem inn i reléet, reléet sender vidare til soklane til verten, og rutinga og VPN-en til verten avgjer adressa som destinasjonen til slutt ser.

HopOwnerWhat it decides
Application requestThe appDestination, resolver, address family
Capture servicePhone VpnService appWhich traffic enters the relay at all
ADB relayHost processForwarding phone flows to host sockets
Host egressHost routing and VPNExit address and host policy

Berre éin klient av VPN-tenesta kan halde fangstrolla til telefonen om gongen, så ein annan vanleg VPN-app legg seg ikkje oppå reléet. Om VPN-en høyrer til datamaskinen, er fangstenesta koplinga inn mot den datamaskinen, ikkje eit prov på at ein ekstern tunnel alt vernar resultatet.

Gjer reléet klart før du tek på telefonen

Gnirehtet er det dokumenterte dømet på denne arkitekturen: ein klient av VPN-tenesta utan root på telefonen og eit relé som blir bore via ADB på verten, med støtte for TCP og UDP over IPv4. Repositoriet seier òg at prosjektet ikkje lenger blir vedlikehalde aktivt, så handsam det som referansedesignet og eit fungerande verktøy for eit laboratorium, ikkje som eit støtta produkt å standardisere over ein administrert flåte.

adb devices
adb shell getprop ro.build.version.release
gnirehtet run

Køyr adb devices fyrst. Ein telefon som ikkje har godteke feilsøkingsnøkkelen til verten, blir rapportert som uautorisert, og reléet koplar seg ikkje til før førespurnaden på eininga blir godteke. gnirehtet run installerer klienten, startar reléet og aktiverer fangsten; på ein versjon som deler trinna, bruk i staden dei dokumenterte underkommandoane install, relay og start.

ADB-tilgang er eit einingkontrollforhold, ikkje ei nettverksinnstilling. Autoriser berre ein datamaskin du kontrollerer, og planlegg å trekkje attende autorisasjonen når oppgåva er ferdig.

Set VPN-en til verten tilbake i stien

Reléet er ein vanleg vertsprosess, så dei vidare koplingane følgjer rutetabellen til verten. Ein fulltunnelprofil ber dei; ein delt tunnel kanskje ikkje. Om VPN-en til verten brukar styring per app, legg relébinæra til i det tillatne settet, elles held reléet fram med å bruke det fysiske grensesnittet medan nettlesaren ser vern om ut.

ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay

Køyr dei to første kommandoane før og etter at du koplar til VPN-en til verten. Om adressa ikkje endrar seg, er reléet ikkje på tunnelen, kva klientvindauget enn seier. Ein berre-privat tunnel lèt òg offentlege destinasjonar liggje på den vanlege utgangen til verten, noko som ser ut som ein lekkasje, men er politikken du sette.

DNS blir løyst på verten for trafikk gjennom reléet, så resolveren til verten avgjer kva tenar som ser namna. Ei privat DNS-innstilling på telefonen følgjer ikkje over reléet, og ein resolvertest på telefonsida vil ikkje skildre oppslaga til verten.

Stadfest kvart hopp kvar for seg

Tre kontrollar, i denne rekkjefølgja: telefonen når reléet, reléet når destinasjonen under politikken til verten, og appen løyser og brukar destinasjonen rett. Stopp ved den første feilen i staden for å laste sider på nytt og gjette.

adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V

Ei VPN-nettverksoppføring i tilkoplingdumpen viser at fangstenesta er aktiv; loggen til reléet sjølv viser om straumar kjem inn. Manglar det i ein av dei, deler det problemet reint: ingen fangst tyder telefonsida, ingen straumar tyder vertssida.

Ein nettlesar som verkar på verten, provar stien til vertsnettlesaren, ikkje den til reléprosessen. Samanlikn adressene kvar av dei rapporterer, og test ein privat ressurs så vel som ei open side, fordi ein berre-privat tunnel kan rute den eine og ikkje den andre.

Riv ned og vel åtferda ved feil

Tilbakerulling er ein del av køyreboka. Stopp og fjern reléet, avinstaller fangstklienten, og trekk attende feilsøkingsautorisasjonen til verten i utviklarvala på telefonen når oppgåva er ferdig.

gnirehtet stop
gnirehtet uninstall
adb kill-server

Avgjer kva telefonen skal gjere når reléet forsvinn. Utan eit medvite val kan han falle tilbake på mobildata og lekkje trafikken du prøvde å rute, så set blokkeringsåtferda eller VPN-politikken med vilje og test nedrivinga før du stolar på ho.

Noter kva vert som vart autorisert, reléversjonen, tunnelpolitikken til verten og nedrivingstrinna. Det er den notata som gjer neste oppsett av omvendt tethering repeterbart i staden for nok ein ettermiddag med attoppdaging.

Relaterte artiklar