Is é an bharúil mhícheart go gcasann aip VpnService lasc chórais agus go mbíonn an fón cosanta as sin amach. Is cúinge ná sin a tharlaíonn i ndáiríre: iarrann an aip toiliú, tógann sí comhéadan, léann agus scríobhann sí paicéid trí thuairisceoir comhaid, agus tugann sí an comhéadan ar ais nuair a stopann sí. Ní féidir ach aon tollán amháin den sórt sin a bheith beo ag an am, agus is féidir leis an gcóras é a thógáil gan fiafraí. Tagann an chuid is mó den iompar mearbhallach a chuireann daoine i leith an phrótacail as an tsamhail úinéireachta sin.

Caith le gach aistriú sa saolré mar chuid den dearadh agus ní mar chás imeallach.

Miotas: casann an aip VPN an fhóin ar siúl

Tosaíonn an sreabhadh le VpnService.prepare(), a thugann Intent ar ais nach mór don úsáideoir glacadh leis, agus leanann sé le establish(), a fhéadfaidh teip fós ina dhiaidh sin ar chúiseanna nach rialaíonn an aip iad. Déanann bunú dara tollán an chéad chomhéadan a dhíghníomhachtú agus tagann sé in ionad fhógra an chórais. Níl lasc uilefheiste ag an aip in aon áit sa seicheamh sin; is leis an tuairisceoir a tugadh di agus na paicéid a thagann air. Baineann fiú an fógra marthanach leis an gcóras seachas le dearadh na haipe.

Toisc go dtugtar an comhéadan seachas go ngabhtar é, féadann cliant eile an áit a ghlacadh ag am ar bith. Faigheann an aip amach faoi sin trí aisghlaoch, ní trí luach fillte.

Tá stopadh éigeantach na haipe le feiceáil sa scáthán fógraí ar an gcúis chéanna: tuairiscíonn an córas an rud a thug sé, ní an rud a roghnaigh an aip a thaispeáint.

Miotas: tugtar toiliú uair amháin

Nuair a thugann an córas an tollán do chliant eile, seolann sé idirbheart cúlghairme ar an binder a thugann an bonn-aicme ar ais ó onBind(). Caithfidh aip a chuireann a binder féin in ionad an bhinder sin an t-idirbheart cúlghairme a chur ar aghaidh í féin, nó ní spreagfar VpnService.onRevoke() go deo agus leanfaidh an tseirbhís ag scríobh isteach i dtuairisceoir nach bhfuil ann a thuilleadh. Is féidir leis an úsáideoir an ceadú a tharraingt siar freisin, agus is féidir leis an gcóras an tseirbhís a stopadh le linn atosaigh nó athnascaidh atá i gcónaí ar siúl.

Is obair choncreideach é seo a láimhseáil, ní líne loga: stop ag léamh an tuairisceora, dún é, glan an bhratach nasctha agus abair leis an úsáideoir cén staid ina bhfuil sé. Ansin socraigh ar cheart don aip athbhunú, fiafraí arís nó fanacht, mar i gcumraíocht atá i gcónaí ar siúl féadfaidh an córas an tseirbhís a thabhairt ar ais as a stuaim féin.

Déanfaidh aip a chaithfidh le cúlghairm mar eisceacht seachas mar staid tuairisciú go bhfuil sí nasctha agus gach paicéad a scríobhann sí á ligean chun siúil, agus is é sin an mód teipe is measa is féidir le huirlis phríobháideachais.

Miotas: déanann an comhéadan trácht a scagadh duit

Is IP amh a thagann. Ciallaíonn gabháil nó scagadh ceanntásca IP, TCP, UDP agus IPv6 a pharsáil, sreafaí a rianú agus freagraí a scríobh ar ais chuig an tuairisceoir, rud a dhéanann stac líonra beag d’aip ghabhála seachas áis chórais. Tá protect() ann ionas go dteithfeadh socket iompair na haipe féin thar a tollán seachas í féin a ghabháil, agus tugann sé luach Boole a thuilleann seiceáil ar gach socket a chruthaítear tar éis an tollán a bheith in airde.

Cinneann liostaí feidhmchlár ceadaithe agus toirmiscthe an tógálaí cé a rachaidh a thrácht isteach sa chomhéadan. Ní thugann siad rochtain ar phá ualaigh thar na paicéid IP a iompraíonn an comhéadan, agus ní nochtann aon API tollán chliaint eile ná liostaíonn próifílí VPN an chórais. Féadann cumais líonra a rá gur iompar VPN é líonra, ach ní cé leis an tollán.

Sin an fáth a bhfaigheann ceisteanna stádais faoi aipeanna eile freagraí contrártha: níl an fhaisnéis nochta do do phróiseas ar chor ar bith.

Cad a éilíonn an saolré i ndáiríre

Rianaigh na staideanna a rialaíonn tú: ullmhaithe, bunaithe, cúlghairthe, stoptha. Ba cheart athnascadh a bheith ina bhriseadh síos agus ansin ina bhunú, le haon úinéir amháin ar an tuairisceoir agus ar an socket iompair, mar beidh dhá chomhpháirt a bheidh ag rásaíocht chun bunú ag troid faoin aon áit atá ar fáil. Tá tosuithe cúlra srianta ar Android nua-aimseartha, mar sin ní ráthaíocht é craoladh tosaithe; bain úsáid as seirbhís thosaigh lena fógra san áit a gceadaíonn leibhéal an API é.

Lógal an t-aistriú agus ní hamháin an staid deiridh, agus coinnigh an meaisín staide chomh beag go leor chun gach cosán a thástáil. Is staid a bhuailfidh tú léi sa pháirc gan log í staid nach féidir leat a bhaint amach i dtástáil.

Tástáil an saolré ar ghléas

Is féidir le haithriseoirí nascacht a chur i gcéill ach ní féidir leo cosán an toilithe agus na cúlghairme a dhéanamh go hintuigthe, mar sin rith iad seo ar ghléas fíor le dara cliant VPN suiteáilte chun an áit a ghoid.

adb shell dumpsys connectivity | grep -i -A3 vpn
adb shell dumpsys activity services | grep -i -A2 vpnservice
adb logcat -s VpnService:V AndroidRuntime:E
adb shell am force-stop com.example.vpnapp

Cuir an tollán ar siúl, deimhnigh an fógra agus an comhéadan, ansin ceangail an cliant eile agus féach an ritheann an t-aisghlaoch cúlghairme agus an nglantar an staid. Stop an aip go héigeantach agus seiceáil an dtuairiscíonn aon rud tuairisceoir beo fós.

Déan an seicheamh a athrá tar éis atosaithe atá i gcónaí ar siúl, mar tá an cosán sin difriúil ó nasc a chuireann an t-úsáideoir tús leis. Ní deilbhín glas atá uait ach fianaise gur stop an aip ag úsáid tuairisceora nach raibh aici a thuilleadh.

Ailt ghaolmhara