Pan fydd yr emwleiddiad yn methu cyrraedd gweinydd adeiladu y mae porwr y gwesteiwr yn ei agor yn iawn, y cwestiwn defnyddiol nid yw a yw’r VPN yn gweithio. Y cwestiwn yw pa un o ddau fecanwaith sydd ar goll gan y gwestai. Mae’r ddyfais rithwir yn rhedeg ei stac rhwydwaith ei hun y tu ôl i NAT yr emwleiddiad, ac mae ei restr datryswyr yn gopi a gymerwyd wrth gychwyn, felly mae twnnel a gododd yn ddiweddarach yn newid llwybr y gwesteiwr heb newid yr hyn y mae’r gwestai yn ei ofyn. Mae deall y ddwy haen hyn yn egluro bron pob amrywiaeth o’r broblem hon.

Mae’r gwestai yn stac ar wahân y tu ôl i NAT sefydlog

Mae rhwydwaith QEMU yn y modd defnyddiwr yn rhoi’r gwestai yn 10.0.2.15, y porth yn 10.0.2.2, a’r gwasanaeth DNS yn 10.0.2.3 hyd at 10.0.2.6. Nid yw cnewyllyn y gwesteiwr yn anfon traffig allan y gwestai ymlaen; mae’n cael ei drawsnewid yn socedi ar ochr y gwesteiwr, un fesul cysylltiad o’r gwestai, ac mae’r socedi hynny yn gadael o ofod cyfeiriad y gwesteiwr. Dyna pam mae cysylltiad y gwestai yn etifeddu penderfyniad llwybro’r gwesteiwr ar y foment y caiff ei greu, a dyna pam nad oes gan y gwestai unrhyw gofnod yn y tabl llwybro sy’n enwi eich twnnel.

Mae’r un mecanwaith yn rhoi ffordd allan ddefnyddiol i’r gwestai. Mae 10.0.2.2 yn alias ar gyfer rhyngwyneb dolen ôl y gwesteiwr, felly mae gwasanaeth sy’n gwrando ar 127.0.0.1 ar y gliniadur yn gyrraeddadwy o’r gwestai ar y cyfeiriad hwnnw. Mae unrhyw beth y mae’r cleient yn ei ddangos ar y ddolen ôl yn unig yn gyrraeddadwy felly, a dyna sail y drefn dirprwy a ddisgrifir isod.

Yr hyn na all y gwestai ei wneud yw arsylwi rhwydwaith y gwesteiwr fel petai’n ofod enwau arno. Nid oes pont, nid oes tabl llwybro a rennir ac nid oes datryswr etifeddol, dim ond y gwasanaeth NAT sy’n derbyn ei becynnau a’r ciplun a gymerodd y lansiwr pan gychwynnodd y ddyfais rithwir.

Ciplun yw DNS, nid golygfa fyw

Wrth gychwyn mae’r emwleiddiad yn darllen rhestr datryswyr y gwesteiwr ac yn rhoi hyd at bedwar gweinydd i’r gwestai, wedi eu datgelu ar y cyfeiriadau 10.0.2.3 i 10.0.2.6. Os oedd y twnnel i lawr ar y foment honno, mae’r ciplun yn cynnwys unrhyw ddatryswr cyhoeddus a ddefnyddiodd y gliniadur, ac mae’r gwestai yn parhau i ofyn iddo am weddill ei oes. Mae enwau cyhoeddus yn datrys, mae enwau mewnol yn methu, ac mae pob symptom yn pwyntio at y VPN tra mai’r gwerth hen ffasiwn go iawn yw rhestr datryswyr a gafwyd funudau cyn i’r twnnel godi.

Felly nid llên gwerin yw’r atgyweiriad drwy drefn. Cysylltwch y twnnel yn gyntaf, yna ailgychwynnwch yr emwleiddiad, a dewiswch gychwyn oer yn hytrach nag adfer ciplun, oherwydd gall delwedd cychwyn cyflym ddod yn ôl gyda’r cyflwr datryswr a llwybro a gadwodd yn gynt. Os oes angen gweld yr hyn y mae’r gwestai yn ei ddefnyddio nawr, gofynnwch i’r ddyfais yn hytrach na’r gwesteiwr:

adb shell dumpsys connectivity | grep -i -A2 dns
adb shell ping -c 1 build.internal.example

Mae’r emwleiddiad hefyd yn derbyn datryswr penodol wrth lansio, sy’n ddefnyddiol pan wyddoch yn union pa weinydd y dylai’r gwestai ei ddefnyddio ac yn beryglus pan fo’r gweinydd hwnnw yn gyhoeddus:

emulator -avd Pixel_API_34 -dns-server 203.0.113.53

Nid oes gan ddatryswr cyhoeddus gopi o barth mewnol, felly mae pinio un yn troi problem trefn yn fethiant parhaol. Os yw’r proffil yn gwthio DNS preifat, gadewch i’r twnnel ei ddarparu a chychwynnwch y gwestai yn oer yn lle codio cyfeiriad yn galed.

Llwybro yn dilyn y gwesteiwr ar amser y cysylltiad

Gan fod cysylltiadau’r gwestai yn dod yn socedi’r gwesteiwr, gwneir y penderfyniad llwybro pan greir y soced. Mae twnnel i fyny cyn y cais yn golygu bod y cais yn gadael drwy’r twnnel yn ôl llwybrau’r proffil. Bydd proffil twnnel hollt sy’n cario dim ond rhagddodiadau dethol yn gadael eich is-rwydwaith breifat y tu allan, felly mae cyrhaeddedd y gwesteiwr yn rhagdybiaeth am y gwestai, nid yn ganlyniad. Mae cysylltiadau presennol y gwestai yn cadw’r llwybr y cawsant eu creu ag ef, a dyna pam nad yw cleient sy’n ailgysylltu bob amser yn trwsio lawrlwytho sydd wedi sticio y tu mewn i’r emwleiddiad.

Mae’r gwiriad ar ryngwyneb y gwesteiwr, nid yn ystadegau’r gwestai:

sudo tcpdump -ni tun0 'host 203.0.113.10'

Os yw cais y gwestai yn ymddangos ar ryngwyneb y twnnel, mae llwybro yn gweithio ac mae’r broblem uwch ei ben. Os yw’n ymddangos ar y rhyngwyneb corfforol, nid yw’r proffil yn cwmpasu’r rhagddodiad hwnnw, ac ni fydd unrhyw ailgyflunio ar ochr y gwestai yn newid hynny.

Pan nad yw’r cleient ond yn cynnig dirprwy dolen ôl

Nid yw rhai cleientiaid masnachol yn creu twnnel system o gwbl. Maent yn datgelu gwrandäwr HTTP neu SOCKS ar 127.0.0.1 ac yn disgwyl i gymwysiadau ei ddefnyddio. Ni all y gwestai weld y soced hwnnw yn uniongyrchol, ond gellir dweud wrth yr emwleiddiad i’w ddefnyddio, naill ai drwy’r rheolyddion estynedig (Gosodiadau, yna Dirprwy, modd â llaw, gwesteiwr 127.0.0.1 a’r porth a argraffir gan y cleient) neu wrth lansio:

emulator -avd Pixel_API_34 -http-proxy http://127.0.0.1:8080

Copïwch y porth o ffenestr y cleient; mae porth wedi’i ddyfalu yn methu’n dawel ac yn edrych fel twnnel wedi torri. Cadwch mewn cof beth mae hyn yn ei gwmpasu: mae gosodiad dirprwy HTTP yn cael ei barchu gan gymwysiadau sy’n ymwybodol o ddirprwy, ac mae socedi crai yn ei anwybyddu’n llwyr. Os mai deuaidd brodorol sy’n agor ei gysylltiadau ei hun yw’r llwyth, nid yw’r llwybr dirprwy yn gyfwerth â thwnnel ac mae’n rhaid gwneud y gymhariaeth yn benodol.

Profwch y canlyniad o fewn y gwestai

Gwahanwch ddatrysiad oddi wrth lwybro gyda dau brawf yn yr un sesiwn. Mae enw sy’n methu tra bod y cyfeiriad rhifol yn ateb yn broblem ciplun DNS, a’r atgyweiriad yw trefn neu ddatryswr penodol. Mae’r ddau yn methu yn pwyntio at lwybro neu bolisi, a’r gwiriad nesaf yw a yw’r ap yn rhedeg mewn proffil gwaith gyda’i gyfyngiadau rhwydwaith ei hun.

Yn olaf, gwybyddwch ar ba westai rydych yn profi. Cafodd delweddau emwleiddiad hynod o hen eu cludo heb y gefnogaeth tun sydd ei hangen ar gleient VPN ar ochr y gwestai, felly ni allai unrhyw broffil weithio yno; mae delweddau cyfredol yn ei chynnwys. Mae cleient sy’n methu ar ddelwedd gyfredol yn broblem cleient neu broffil, ac ni fydd ailadeiladu twnnel y gwesteiwr yn newid y canlyniad.

Erthyglau cysylltiedig