Weydii app iOS haddii telefoonku ku jiro VPN, jawaabta daacadda ahna waa in aanu ku ogaan karin sida aad uga hadlaysid. SDK ma soo bandhigo calan loogu talagalay «qalabku wuxuu ku jiraa tunnel», iyo is-dhexgalka gaarka ah ee laga yaabo inuu u soo dhawaado taas waa xiran yihiin apps la daabaco. Waxaad ku fiirin kartaa isku-dubbaridka app-kaaga, xaaladda ku xidhan, iyo hal ama laba tilmaamood oo dadban oo ka yimaada stack-ka shabakadda. Mid kastaa waxa uu ka jawaabaa su'aal kale, oo inta badan hubinta jabtay waxa ay ka timaadaa in mid ka mid ah loo qaato jawaabta oo dhan.

Halyeeyga hal calan VPN

Aaminsanaantu waa in meel ku jirta SDK uu jiro hanti soo sheegta haddii qalabku ku jiro tunnel, sida calanka gaadhista uu soo sheego haddii martigeliyahu jawaabo. Hanti guud oo caynkaas ah ma jirto. Xataa haddii ay jirto, «tunnel ayaa jira» iyo «taraafikadayda ayaa isticmaalaya» waa sheegashooyin kala duwan, oo inta badan apps-ka midda labaad oo keliya ayaa muhiim u ah.

Farqigaas ayaa sabab u ah in maktabadaha xayeysiiya ogaanshaha VPN hal saf ah ay inta badan akhriyaan wax jilicsan, sida magaca is-dhexgalka ama fure proxy, oo ay u soo bandhigaan sida xukun.

Soo rar doorbidyada ka hor inta aadan aammin nil

Nuqulka maareeyaha la wadaago wuxuu jiraa isla markii aad codsato, laakiin hantidiisa borotokoolku wuxuu ahaanayaa nil ilaa callback-ka raridda uu dhammaado. Sidaas darteed borotokool nil waxa uu ula macne yahay «weli lama rarin» ugu yaraan inta uu ula macne yahay «lama rakibin». Akhriska ku samee gudaha block-ka dhamaystirka, oo markaas oo keliya go'aan qaado: shay borotokool ah oo jira, oo calanka firfircoonayntu shidan yahay, sidaas ayaa «la rakibay» u eg yahay.

Calaamad labaad waxa ay ku taal shayga xidhiidhka: xaaladda aan ansax ahayn, oo nidaamku soo sheego marka app-kan uusan lahayn isku-dubbarid la rakibay. Xaalad aan ansax ahayn oo la socota borotokool nil ka dib rarid dhamaystiran waa maqnaansho dhab ah, ma aha tartan waqti.

Isbeddelada xidhiidhka waxa ay u yimaadaan sida ogeysiisyo

Maareeyayaasha loo gudbiyo load iyo save waxa ay soo sheegaan waxa ku dhacay isku-dubbaridka, ma aha waxa tunnel-ku qabanayo. Sugitaanka in mid ka mid ah uu shidmo marka la xidhiidho waa tartan aan waligiis xallin. Taas beddelkeeda la soco ogeysiiska isbeddelka xaaladda, oo akhri qiimaha hadda ee shayga xidhiidhka marka uu yimaado.

Marka isku-dubbarid la rakibo, xaaladda xidhiidhku waxa ay dhex martaa taxane gaaban: go'ay, xidhiidhaya, xidhan, dib u xaqiijinaya, goynaya. «Xidhan» waxa uu qeexayaa tunnel-ka ee ma aha server-ka ka dambeeya, sidaas darteed ma aha caddayn in taraafikadu qulqulayso. On-demand waxa uu sidoo kale kicin karaa tunnel inta app-ku hakad ku jiro, markaasna ogeysiisku wuxuu yimaadaa ka hor inta aadan haysan wax cusboonaysiin ah.

Sawirka proxy xaddidan waa tilmaan, ma aha xukun

CFNetwork waxa uu app-ka siin karaa dejinta proxy hadda ee nidaamka, oo gudaha natiijadaas waxa jira qaamuus xaddidan oo fure u leh magaca is-dhexgalka. Magac ku bilaabma tun, utun, ppp, ipsec ama tap aragtidiisu waa tilmaan in tunnel jiro. Waxa ay weli tahay sawir waxa app-kan arki karo, ma aha bayaan ku saabsan halka baakaduhu u socdaan.

Bixiyeyaashu kuma heshiiyaan magacaabista, sidaas darteed horgalaha maqan waxba ma caddeeyo, oo is-dhexgal jira wuxuu jiri karaa isagoo aan qaadin taraafik. Gaadhista ayaa ka sii liidata: codsi guulaystay oo cinwaan gaar ah wuxuu muujinayaa in waddadu shaqaysay codsigaas waqtigaas, ma aha in VPN la rakibay.

Jilitaanku wuxuu amaahdaa Mac-ka, apps-kana kale waxay ahaanayaan kuwo aan la arkin

Jilitaanku ma laha stack shabakadeed u gaar ah; xidhiidh kasta oo uu sameeyo waa Mac-ka. Sidaas darteed VPN ku socda Mac-ka martida wuxuu horey ugu dhaqan galay app-ka la jilay, dejinta jilitaanka laftiisana waxba ma muujiso. Haddii tunnel-ku soo kacay ka dib bilowga jilitaanka, dib u bilowgiisu badanaa wuu ka dhaqso badan yahay in app-ka la debuggeeyo. Martigeliyaha deked aan caadi ahayn wuxuu u baahan yahay dekeddaas URL-ka, ama gudbin maxalli ah sida socat TCP-LISTEN:12345,fork TCP:host:12345.

API-yada guud ma liis garayn doonaan borofaylada VPN ee ay leeyihiin apps kale ama borofaylada isku-dubbaridka. Hal app oo la yaqaan, imtixaanka scheme URL ee canOpenURL waa khiyaanada la qaadan karo, iyo tan iyo iOS 9 scheme-ka la weydiiyo waa in lagu dhawaaqo Info.plist-kaaga; haddii aad ka tagto, wicitaanku wuxuu soo celinayaa false. OpenVPN Connect waxa uu ka jawaabaa openvpn://, taas oo ka dhigaysa tusaale wanaagsan iyo ogaan-dhaliye guud oo xun.

Isku dar saddex fiirsasho oo sheeg waxa ay ka dhigan yihiin

Ficil ahaan isku tuul saddex natiijo: isku-dubbarid la raray oo firfircoon, xaalad xidhiidh oo aan ansax ahayn, iyo codsi cinwaan laga gaadhi karo tunnel-ka oo keliya. Mid kastaa keligiis wuu marin-habaabiyaa; si wadajir ah waxa ay sheegaan waxa app-ku ogaan karo, ma aha waxa isticmaalahu u malaynayo.

Natiijada u qor saddex sadar oo ku jira baaritaankaaga, ma aha hal boolean. Marka isticmaale sheego in VPN-ku damisan yahay halka app-kaagu aanu ku qanacsanayn, saddexda sadar waxa ay muujinayaan fiirsashada kee baa ka leexday, taasina waa farqiga u dhexeeya tikit taageero oo aad wax ka qaban karto iyo mid ku dhammaada «aniga waan ku shaqeeyaa».

Maqaallo la xiriira