Mae tetheru gwrthdro yn symud traffig ffôn i gyfrifiadur ac yn ei anfon allan trwy gysylltiad y cyfrifiadur. Nid yw cebl USB ar ei ben ei hun yn gwneud hyn: mae angen gwasanaeth dal ar y ffôn sy’n cymryd drosodd ei lwybro, ac mae angen relay ar y cyfrifiadur sy’n cludo’r pecynnau hynny ymlaen. Mae pedwar cam yn y llwybr: cymhwysiad, dal ar y ffôn, relay USB ac allanfa’r gwesteiwr, ac mae gan bob un berchennog gwahanol. Mae’r llyfr gweithredu hwn yn adeiladu’r llwybr hwnnw, yn rhoi VPN y gwesteiwr lle mae’n perthyn, ac yn gwirio pob cam cyn i chi ymddiried yn y canlyniad.

Mapwch y camau cyn rhedeg unrhyw beth

Mae pob cam yn cymhwyso ei bolisi ei hun, a dyna pam nad yw canlyniad sy’n gweithio ar un pen yn dweud dim am y pen arall. Mae’r cymhwysiad yn dewis cyrchfan a datryswr, mae’r gwasanaeth dal yn penderfynu pa draffig sy’n mynd i’r relay, mae’r relay yn anfon ymlaen i socedi’r gwesteiwr, ac mae llwybro a VPN y gwesteiwr yn penderfynu pa gyfeiriad y bydd y gyrchfan yn ei weld o’r diwedd.

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

Dim ond un cleient gwasanaeth VPN all ddal rôl dal y ffôn ar y tro, felly nid yw ail ap VPN cyffredin yn pentwr ar ben y relay. Os yw’r VPN yn perthyn i’r cyfrifiadur, y gwasanaeth dal yw’r ddolen fynediad tuag at y cyfrifiadur hwnnw, nid prawf bod tiwnel o bell eisoes yn diogelu’r canlyniad.

Paratowch y relay cyn cyffwrdd â’r ffôn

Gnirehtet yw’r enghraifft ddogfennedig o’r bensaernïaeth hon: cleient gwasanaeth VPN heb root ar y ffôn ynghyd â relay a gludir trwy ADB ar y gwesteiwr, yn cefnogi TCP a UDP dros IPv4. Mae ei ystorfa hefyd yn nodi nad yw’r prosiect yn cael ei gynnal yn weithredol mwyach, felly triniwch ef fel y dyluniad cyfeirio ac offeryn gweithiol ar gyfer labordy, nid fel cynnyrch â chymorth i’w safoni ar fflyd a reolir.

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

Rhedwch adb devices yn gyntaf. Mae ffôn nad yw wedi derbyn allwedd dadfygio’r gwesteiwr yn adrodd fel heb awdurdod, ac ni fydd y relay yn cysylltu nes bod yr anogiad ar y ddyfais yn cael ei dderbyn. Mae gnirehtet run yn gosod y cleient, yn cychwyn y relay ac yn actifadu’r dal; ar fersiwn sy’n gwahanu’r camau, defnyddiwch yr is-gorchmynion dogfennedig install, relay a start yn lle hynny.

Mae mynediad ADB yn berthynas rheoli dyfais, nid yn osodiad rhwydwaith. Awdurdodwch gyfrifiadur yr ydych yn ei reoli yn unig, a chynlluniwch i ddirymu’r awdurdodiad hwnnw pan fydd y dasg wedi gorffen.

Rhowch VPN y gwesteiwr yn ôl yn y llwybr

Mae’r relay yn broses gyffredin ar y gwesteiwr, felly mae ei gysylltiadau pellach yn dilyn tabl llwybro’r gwesteiwr. Mae proffil tiwnel llawn yn eu cludo; efallai na fydd tiwnel hollt yn gwneud. Os yw VPN y gwesteiwr yn defnyddio rheolaethau fesul ap, ychwanegwch y deuaidd relay at y set a ganiateir, fel arall bydd y relay yn parhau i ddefnyddio’r rhyngwyneb ffisegol tra bod y porwr yn edrych yn ddiogel.

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

Rhedwch y ddau orchymyn cyntaf cyn ac ar ôl cysylltu VPN y gwesteiwr. Os nad yw’r cyfeiriad yn newid, nid yw’r relay ar y tiwnel, beth bynnag mae ffenestr y cleient yn ei ddweud. Mae tiwnel preifat yn unig hefyd yn gadael cyrchfannau cyhoeddus ar allanfa arferol y gwesteiwr, sy’n edrych fel gollyngiad ond dyna’r polisi a gyfluniodd.

Mae DNS yn datrys ar y gwesteiwr ar gyfer traffig trwy’r relay, felly datryswr y gwesteiwr sy’n penderfynu pa weinydd sy’n gweld yr enwau. Nid yw gosodiad DNS preifat ar y ffôn yn croesi’r relay, ac ni fydd prawf datryswr ar ochr y ffôn yn disgrifio chwiliadau’r gwesteiwr.

Gwiriwch bob cam ar wahân

Tri gwiriad, yn y drefn hon: mae’r ffôn yn cyrraedd y relay, mae’r relay yn cyrraedd y gyrchfan o dan bolisi’r gwesteiwr, ac mae’r ap yn datrys ac yn defnyddio’r gyrchfan honno’n gywir. Stopiwch ar y methiant cyntaf yn lle ail-lwytho tudalennau a dyfalu.

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

Cofnod rhwydwaith VPN yn null y cysylltiadau yn dangos bod y gwasanaeth dal yn actif; mae log y relay ei hun yn dangos a yw ffrydiau’n cyrraedd. Mae absenoldeb yn un o’r rhain yn hollti’r broblem yn lân: dim dal yw ochr y ffôn, dim ffrydiau yw ochr y gwesteiwr.

Mae porwr sy’n gweithio ar y gwesteiwr yn profi llwybr porwr y gwesteiwr, nid llwybr proses y relay. Cymharwch y cyfeiriadau y mae pob un yn eu hadrodd, a phrofwch adnodd preifat yn ogystal â thudalen gyhoeddus, oherwydd gall tiwnel preifat yn unig lwybro un ac nid y llall.

Datgymalwch a dewiswch ymddygiad methiant

Mae adfer yn rhan o’r llyfr gweithredu. Stopiwch a dilewch y relay, dadosodwch y cleient dal, a dirymwch awdurdodiad dadfygio’r gwesteiwr o opsiynau datblygwr y ffôn pan fydd y dasg wedi gorffen.

gnirehtet stop
gnirehtet uninstall
adb kill-server

Penderfynwch beth ddylai’r ffôn ei wneud pan fydd y relay yn diflannu. Heb ddewisiad penodol gall ddychwelyd i ddata symudol a gollwng y traffig yr oeddech yn ceisio ei lwybro, felly gosodwch ymddygiad blocio cysylltiadau neu bolisi’r VPN yn fwriadol a phrofwch y datgymalu cyn i chi ddibynnu arno.

Cofnodwch y gwesteiwr a awdurdodwyd, fersiwn y relay, polisi tiwnel y gwesteiwr a’r camau datgymalu. Y cofnod hwnnw sy’n gwneud y sefydliad tetheru gwrthdro nesaf yn ailadroddadwy yn lle prynhawn arall o ailddarganfod.

Erthyglau cysylltiedig