Spurðu iOS-forrit hvort síminn sé á VPN og heiðarlegt svar er að það geti ekki vitað það á þann hátt sem þú átt við. SDK-ið býður engan fána fyrir «tækið er í göngum», og einkaviðmótin sem gætu nálgast það eru lokuð fyrir forritum sem eru gefin út. Þú getur fylgst með eigin stillingum forritsins, stöðunni sem fylgir þeim, og einni eða tveimur óbeinum vísbendingum úr netstaflanum. Hver svarar annarri spurningu, og flest brotnu prófin koma af því að taka eina þeirra sem alla svarið.

Goðsögnin um einn VPN-fána

Trúin er að einhvers staðar í SDK-inu sé eiginleiki sem segir til um hvort tækið sé í göngum, eins og aðgengisfáni segir til um hvort hýsing svari. Slíkur opinber eiginleiki er ekki til. Og jafnvel þótt hann væri til, eru «göng eru til» og «umferðin mín notar þau» mismunandi fullyrðingar, og fyrir flest forrit skiptir aðeins önnur máli.

Einmitt þetta bil er ástæðan fyrir því að söfn sem auglýsa einnar línu VPN-skynjara lesa yfirleitt eitthvað brothætt, eins og viðmótsheiti eða proxy-lykil, og kynna það sem úrskurð.

Hladdu stillingunum áður en þú treystir nil

Deilt stjórnanda-tilvik er til um leið og þú biður um það, en samskiptareglueiginleiki þess verður nil þar til hleðsluendurkallið klárast. Svo nil-samskiptaregla þýðir «ekki hlaðið enn» að minnsta kosti jafn oft og «ekki uppsett». Lestu inni í klárunarblokkinu og ákveddu svo: samskiptaregluhluti sem er til, með virkjunarfánanum á, er þannig sem «uppsett» lítur út.

Annað merki er á tengingarhlutnum: ógilt ástand, sem kerfið tilkynnir þegar þetta forrit hefur enga uppsetta stillingu. Ógilt ástand ásamt nil-samskiptareglu eftir kláraða hleðslu er raunveruleg fjarvera, ekki tímaskeið.

Tengingarbreytingar koma sem tilkynningar

Meðhöndlarar sem gefnir eru til load og save segja frá því sem varð um stillinguna, ekki því sem göngin gera. Að bíða eftir að einn þeirra kvikni við tengingu er skeið sem leysist aldrei. Fylgstu í staðinn með tilkynningunni um stöðubreytingu og lestu núverandi gildi tengingarhlutarins þegar hún berst.

Þegar stilling er uppsett fer tengingarstaðan í gegnum stutta röð: aftengt, tengist, tengt, staðfestir aftur, aftengist. «Tengt» lýsir göngunum en ekki netþjóninum á bak við þau, svo það er ekki sönnun þess að umferð streymi. On-demand getur líka lyft göngum á meðan forritið er í bið, og þá berst tilkynningin áður en þú hefur eitthvað til að uppfæra.

Takmarkað proxy-skvill er vísbending, ekki úrskurður

CFNetwork getur gefið forritinu núverandi proxy-stillingar kerfisins, og inni í þeirri niðurstöðu er takmörkuð orðabók með lykli eftir viðmótsheiti. Að sjá heiti sem byrjar á tun, utun, ppp, ipsec eða tap er vísbending um að göng séu til staðar. Það er áfram skvill af því sem þetta forrit getur séð, ekki fullyrðing um hvert pakkarnir fara.

Þjónustuveitendur eru ósammála um nafngiftir, svo forskeyti sem vantar sannar ekkert, og viðmót sem er til getur verið án þess að bera umferð. Aðgengi er enn veikara: árangursrík beiðni á einkaheimilisfang sýnir að leiðin virkaði fyrir þá beiðni á þeirri stundu, ekki að VPN sé uppsett.

Hermahermirinn fær Macinn að láni, og önnur forrit verða ósýnileg

Hermahermirinn hefur enga eigin netstaflu; hver tenging sem hann gerir er Macsins. Því er VPN sem keyrir á hýsingar-Macnum þegar í gildi fyrir herma forritið, og stillingar hermisins sjálfs sýna ekkert. Ef göngin komu upp eftir að hermirinn byrjaði, er oft fljótlegra að endurræsa hann en að kemba forritið. Hýsing á óstöðluðum porti þarf það port í URL-inu, eða staðbundið framsendingu eins og socat TCP-LISTEN:12345,fork TCP:host:12345.

Opinber API munu ekki telja upp VPN-snið sem tilheyra öðrum forritum eða stillingarsniðum. Fyrir eitt þekkt forrit er URL-kerfisprófun í gegnum canOpenURL færanlega bragðið, og frá iOS 9 verður að tilkynna kerfið sem spurt er um í Info.plist; slepptu því og kallið skilar false. OpenVPN Connect svarar á openvpn://, sem gerir það að góðu dæmi og lélegum almennum skynjara.

Sameinaðu þrjár athuganir og segðu hvað þær þýða

Í reynd staflaðu þremur niðurstöðum: stillingu sem hlaðist og er virk, tengingarstöðu sem er ekki ógild, og beiðni á heimilisfang sem aðeins er hægt að ná í gegnum göngin. Hver og ein villir eitt og sér; saman segja þær hvað forritið getur vitað frekar en hvað notandinn gerir ráð fyrir.

Skrifaðu niðurstöðuna sem þrjár línur í greiningunni þinni, ekki sem einn boolean. Þegar notandi segir að VPN-ið sé slökkt á meðan forritið þitt er ósammála sýna línurnar þrjár hvaða athugun víkjaði, og það er munurinn á stuðningsmiða sem þú getur brugðist við og einum sem endar á «hjá mér virkar þetta».

Tengdir greinar