Mae ap Android yn gwrthod rhedeg dros VPN: pa haen sy’n penderfynu
Gall ap wrthod VPN oherwydd gwiriad cludo lleol, rheol cyfeiriadau ar ochr y gweinydd neu ei bolisi ei hun. Gwahaniaethwch y tri cyn newid allanfeydd.
Pan fydd ap Android yn peidio â gweithio yr eiliad y bydd y tiwnel yn codi, gall tair peth wahanol fod yn gyfrifol, ac maent yn cynhyrchu methiannau sy’n edrych yn debyg. Gall yr ap ddarllen cyflwr rhwydwaith y ffôn ei hun a gwrthod yn lleol. Gall y gweinydd ddosbarthu’r cyfeiriad rydych yn dod ohono a’i wrthod. Neu gall y gwrthodiad fod heb unrhyw gysylltiad â’r VPN o gwbl. Mae’r drefn isod yn casglu tystiolaeth cyn newid unrhyw beth, oherwydd newid yr allanfa yw’r cam drutaf a’r un lleiaf tebygol o helpu os yw’r gwiriad yn lleol.
Cam 1: darganfod pryd mae’r ap yn gwrthod
Amser yw’r gwahaniaethydd cyntaf. Cliriwch y bwfer log, atgynhyrchwch y methiant, ac edrychwch ar yr hyn a wnaeth yr ap cyn iddo gwyno:
adb logcat -c
# reproduce the failure in the app
adb logcat -d | grep -iE 'vpn|network|connect|http' | tail -60
Os yw’r ap yn gwrthod cyn i unrhyw gais allanol gael ei geisio, rydych yn edrych ar benderfyniad lleol. Os yw’n cysylltu, yn anfon rhywbeth ac yna’n dangos gwall, daeth y gwrthodiad o’r ochr arall. Os yw’r ap yn methu yn yr un modd gyda’r tiwnel i lawr, nid oedd y VPN erioed yn newidyn.
Triniwch yr amseru hwnnw fel tystiolaeth yn hytrach na phrawf. Gall ap ailchwarae ymateb wedi’i storio, a gall ceisiadau cefndir fod wedi llwyddo neu fethu cyn i chi edrych. Nodwch stampiau amser y cais llwyddiannus olaf a’r gwall, nid yn unig yr eiliad y daeth y neges i’r golwg.
Cam 2: darllen golwg y ffôn ei hun ar y rhwydwaith
Mae Android yn datgelu cyflwr y VPN fel gallu rhwydwaith, felly nid oes angen rhestr o ddarparwyr masnachol ar ap i sylwi bod tiwnel yn weithredol. Mae’n gofyn i’r gwasanaeth cysylltiadau beth yw’r rhwydwaith cyfredol, ac mae’r ateb yn cynnwys did cludo VPN:
val cm = context.getSystemService(ConnectivityManager::class.java)
val caps = cm.getNetworkCapabilities(cm.activeNetwork)
val onVpn = caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true
Mae’r gwiriad hwnnw’n lleol ac yn rhad, ac mae’n esbonio dosbarth cyfan o adroddiadau „nid yw’r ap hwn yn gweithio dros VPN” heb unrhyw ddosbarthiad o bell. Mae’r hyn y gall yr ap ei weld yn dal i ddibynnu ar ei gyd-destun rhwydwaith ei hun, felly peidiwch â chymryd yn ganiataol bod pob ap yn archwilio pob proffil ar y ddyfais.
O orsaf waith gallwch weld yr un cyflwr ar ddyfais brawf gyda adb shell dumpsys connectivity a thrwy chwilio am y cofnod rhwydwaith VPN. Cymharwch rediad gyda’r tiwnel i fyny â rhediad gyda’r tiwnel i lawr, a chadwch y ddau allbwn.
Cam 3: darllen yr hyn y mae’r gweinydd yn ei weld mewn gwirionedd
Y sylwedydd arall yw’r gwasanaeth. Mae’n gweld y cyfeiriad ffynhonnell sy’n cyrraedd, a gall weithredu ar y cyfeiriad, y rhwydwaith cynnal y tu ôl iddo, y rhanbarth, y cludiant neu signalau sy’n gysylltiedig â’r cyfrif a’r ddyfais. Nid oes yr un o’r rhain yn hunaniaeth unigryw, ac mae cyfeirio a rennir yn gwneud blociau ochrol yn normal: gall un cyfeiriad cyfyngedig dynnu allan ddefnyddwyr digyswllt y tu ôl i’r un cyfieithiad.
Ewch i gael y cyfeiriad trwy’r un llwybr ag y mae’r ap yn ei ddefnyddio, nid o borwr ar liniadur. Ar y ffôn, mae cais plaen i wasanaeth atsain cyfeiriad yn dangos yr hyn y mae’r ochr bell yn ei dderbyn, ac mae cymharu hynny â chais dros rwydwaith symudol yn dweud wrthych a newidiodd y cyfeiriad o gwbl.
Os yw’r ap yn gweithio dros rwydwaith symudol ac yn methu dros y tiwnel gyda’r un cyfrif, mae’r gwrthodiad ar yr ochr bell neu ym mholisi’r ap ei hun. Os yw’n methu yn y ddau achos, nid y VPN yw’r gwahaniaethydd a dylech stopio profi pwyntiau terfyn.
Cam 4: cyfateb y dystiolaeth i un o dri dedfryd
Mae tair cyfuniad yn cwmpasu bron pob adroddiad. Mae gwrthodiad heb unrhyw ymgais allanol tra bo tiwnel yn weithredol yn pwyntio at wiriad cludo lleol. Mae cais sy’n gadael ac yn dychwelyd gyda gwall, terfyn amser ar westeiwr penodol neu neges rhanbarth yn pwyntio at yr ochr bell. Mae methiant sy’n ailadrodd dros rwydwaith symudol heb diwnel yn pwyntio at y cyfrif, fersiwn yr ap neu bolisi’r gwasanaeth ei hun, ac ni fydd unrhyw newid VPN yn ei symud.
Ysgrifennwch y ddedfryd gyda’r dystiolaeth a’i cynhyrchodd. Gwerth y cam hwn yw ei fod yn atal y ddolen lle mae rhywun yn newid nodau allanfa bedair gwaith i drwsio gwiriad sy’n rhedeg ar y ffôn ei hun.
Mae hefyd yn cadw’r honiadau’n onest. Mae cynnal eich gweinydd eich hun yn newid y pwynt terfyn a’i allanfa i’r rhyngrwyd; nid yw’n gwneud i Android anghofio bod rhwydwaith VPN yn weithredol, ac nid yw’n gwarantu derbyniad gan wasanaeth sy’n dosbarthu cyfeiriadau. Gall hidlydd lleol sbarduno ar rwydwaith VPN rydych yn berchen arno yr un mor hawdd ag ar un masnachol.
Cam 5: cymryd y llwybr a gefnogir a’i wirio
Dechreuwch â pholisi dogfennol y cynnyrch a’i berchennog cymorth. Anfonwch fersiwn y cleient, y neges union a ffenestr fethiant gul; peidiwch ag anfon cofnodion traffig llawn na manylion mewngofnodi dim ond i brofi bod gwall yn bodoli.
Os yw’r gwasanaeth yn caniatáu mynediad uniongyrchol ac mae polisi’r ddyfais yn caniatáu hynny, yna eithriad fesul ap yw’r mecanwaith a gefnogir, ac mae’n tynnu’r ap hwnnw o’r tiwnel yn fwriadol yn hytrach na chuddio’r tiwnel. Yna mae traffig yr ap yn gadael ar ei lwybr ei hun, sy’n benderfyniad polisi y mae’n rhaid i rywun fod yn berchen arno. Mewn ffurfweddiad sy’n blocio heb VPN gall ap a eithrir golli cysylltedd yn syml, felly profwch y cyfuniad hwnnw cyn addo ei fod yn gweithio.
Ar ôl unrhyw newid, ailadroddwch brawf amseru cam un, cadarnhewch fod yr ap yn gweithio, a chadarnhewch fod pob ap arall yn dal i ddefnyddio’r tiwnel. Yna adferwch y ffurfweddiad blaenorol a gwiriwch a yw’r methiant yn dychwelyd, oherwydd mae trwsgl na allwch ei atgynhyrchu yn gyd-ddigwyddiad y byddwch yn ei gyfarfod eto.