Alderantzizko tethering-ak telefono baten trafikoa ordenagailu batera eramaten du eta ordenagailuaren konexioaren bidez irteten da. USB kable bat bakarrik ez da nahikoa: telefonok bere bideratzea hartzen duen harrapaketa zerbitzu bat behar du, eta ordenagailuak pakete horiek aurrera eramaten dituen errele bat. Bideak lau jauzi ditu: aplikazioa, telefonoaren harrapaketa, USB errelea eta host-aren irteera, eta bakoitzak jabe desberdina du. Runbook honek bide hori eraikitzen du, host-eko VPN-a dagokion tokian jartzen du eta jauzi bakoitza egiaztatzen du emaitzaz fidatu aurretik.

Kokatu jauziak ezer exekutatu aurretik

Jauzi bakoitzak bere politika aplikatzen du, horregatik mutur batean funtzionatzen duen emaitzak ez du ezer esaten besteaz. Aplikazioak helmuga eta ebazle bat hautatzen ditu, harrapaketa zerbitzuak erabakitzen du zein trafiko sartzen den erreleen, erreleak host-eko socket-etara birbidaltzen du, eta host-aren bideratzeak eta VPN-ak erabakitzen dute helmugak azkenean ikusten duen helbidea.

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

VPN zerbitzuko bezero bakar batek har dezake aldi berean telefonoaren harrapaketa rola, beraz bigarren VPN aplikazio arrunt bat ez da errelearen gainean pilatzen. VPN-a ordenagailuari badagokio, harrapaketa zerbitzua ordenagailu horretarako sarbide estekak da, ez urruneko tunel batek emaitza babesten duenik dioen froga.

Prestatu errelea telefonoa ukitu aurretik

Gnirehtet arkitektura honen dokumentatutako adibidea da: VPN zerbitzuko bezeroa root gabe telefonoan, eta ADB bidez host-era eramandako errele bat, TCP eta UDP IPv4 gainean onartzen dituena. Bere biltegiak proiektua jada ez dela aktiboki mantentzen dio, beraz har ezazu erreferentziazko diseinu eta laborategirako tresna erabilgarri gisa, ez flota kudeatu batean estandarizatzeko produktu onartu gisa.

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

Exekutatu lehenik adb devices. Host-aren arazketa gakoa onartu ez duen telefonoa baimenik gabe gisa jakinarazten da, eta errelea ez da konektatuko gailuko eskaera onartzen ez den arte. gnirehtet run bezeroa instalatzen du, errelea abiarazten du eta harrapaketa aktibatzen du; urratsak bereizten dituen bertsio batean, erabili ordez dokumentatutako install, relay eta start azpikomandoak.

ADB sarbidea gailuaren kontrol harremana da, ez sare ezarpena. Baimendu soilik kontrolatzen duzun ordenagailu bat, eta aurreikusi baimen hori baliogabetzea zeregina amaitzean.

Jarri host-eko VPN-a berriro bidean

Errelea host-eko prozesu arrunta da, beraz haren ondorengo konexioek host-aren bideratze taulari jarraitzen diote. Tunel osoko profil batek eramaten ditu; tunel zatitu batek agian ez. Host-eko VPN-ak aplikazioko kontrolak erabiltzen baditu, gehitu errelearen binarioa onartutako multzora, bestela erreleak interfaze fisikoa erabiltzen jarraitzen du nabigatzailea babestuta dirudien bitartean.

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

Exekutatu lehen bi komandoak host-eko VPN-a konektatu aurretik eta ondoren. Helbidea aldatzen ez bada, errelea ez dago tunelean, bezeroaren leihoak esan arren. Soilik pribatua den tunel batek helburu publikoak host-aren ohiko irteeran uzten ditu, isuri baten itxura duena baina zuk ezarritako politika da.

DNS host-ean ebazten da erreletik igarotzen den trafikoarentzat, beraz host-aren ebazleak erabakitzen du zein zerbitzarik ikusten dituen izenak. Telefonoko DNS pribatu ezarpena ez da erreletik igarotzen, eta telefonoko ebazle proba batek ez ditu host-aren bilaketak deskribatuko.

Egiaztatu jauzi bakoitza bereizita

Hiru egiaztapen, ordena honetan: telefonoa errelera iristen da, errelea helmugara iristen da host-aren politikapean, eta aplikazioak helmuga hori behar bezala ebazten eta erabiltzen du. Gelditu lehen hutsegitean, orriak berriro kargatu eta asmatu beharrean.

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

VPN sareko sarrera bat konektibitatearen dumperan erakusten du harrapaketa zerbitzua aktibo dagoela; errelearen beraren erregistroak erakusten du fluxuak iristen ari diren ala ez. Horietako batean ez izateak arazoa garbi banatzen du: harrapaketarik ez da telefonoaren aldea, fluxurik ez da host-aren aldea.

Host-ean funtzionatzen duen nabigatzaileak host-eko nabigatzailearen bidea frogatzen du, ez errele prozesuarena. Konparatu bakoitzak jakinarazten dituen helbideak, eta probatu baliabide pribatu bat zein orrialde publiko bat, soilik pribatua den tunel batek bat bideratu eta bestea ez baitu bideratuko.

Desmuntatu eta hautatu hutsegite jokabidea

Atzera itzultzea runbook-aren parte da. Gelditu eta kendu errelea, desinstalatu harrapaketa bezeroa, eta baliogabetu host-aren arazketa baimena telefonoaren garatzaile aukeretatik zeregina amaitzean.

gnirehtet stop
gnirehtet uninstall
adb kill-server

Erabaki zer egin behar duen telefonok errelea desagertzean. Aukerarik gabe, datu mugikorretara erori eta bideratu nahi zenuen trafikoa isur dezake, beraz ezarri nahita konexioak blokeatzeko jokabidea edo VPN politika eta probatu desmuntatzea horren mende jarri aurretik.

Erregistratu baimendutako host-a, errelearen bertsioa, host-aren tunel politika eta desmuntatze urratsak. Erregistro horrek egiten du hurrengo alderantzizko tethering ezarpena errepikagarri, berraurkikuntzako beste arratsalde bat izan beharrean.

Erlazionatutako artikuluak