iPhone VPNdami? iOS ilovasi aslida nimani ko‘ra oladi
iOS SDKda yagona VPN bayrog‘i yo‘q. Ilova faqat o‘z konfiguratsiyasini, holat bildirishnomasini va cheklangan proksi suratini kuzatishi mumkin, boshqa hech narsani.
iOS ilovasidan telefon VPNdami deb so‘rang, va halol javob shuki, u buni siz nazarda tutgan ma’noda bila olmaydi. SDK «qurilma tunnelda» degan bayroq bermaydi, va bunga yaqinlasha oladigan xususiy interfeyslar chop etiladigan ilovalar uchun yopiq. Siz o‘z ilovangiz konfiguratsiyasini, unga bog‘langan holatni va tarmoq stekidan bir-ikki bilvosita ishorani kuzatishingiz mumkin. Har biri boshqa savolga javob beradi, va buzilgan tekshiruvlarning ko‘pchiligi ulardan birini to‘liq javob deb qabul qilishdan kelib chiqadi.
Yagona VPN bayrog‘i haqidagi afsona
E’tiqod shuki, SDKning biror joyida qurilmaning tunnelda ekanini bildiruvchi xususiyat bor, xuddi erishish bayrog‘i hostning javob berishini bildirgani kabi. Bunday ommaviy xususiyat yo‘q. Bo‘lganida ham, «tunnel bor» va «mening trafigim undan foydalanadi» turlicha da’volar, va aksariyat ilovalar uchun faqat ikkinchisi muhim.
Aynan shu bo‘shliq bir qatorli VPN aniqlagichini reklama qiladigan kutubxonalar odatda nimadir nozik narsani — interfeys nomi yoki proksi kalitini — o‘qib, uni hukm sifatida taqdim etishining sababidir.
nilga ishonishdan oldin sozlamalarni yuklang
Umumiy menejer nusxasi siz so‘ragan zahoti mavjud, lekin uning protokol xususiyati yuklash callbacki tugaguncha nil bo‘lib qoladi. Shuning uchun nil protokol «hali yuklanmagan» degani «o‘rnatilmagan» deganidan kam emas. O‘qishni tugatish bloki ichida bajaring va shundan keyingina qaror qiling: mavjud protokol obyekti, yoqish bayrog‘i yoniq holda — «o‘rnatilgan» degani shunday ko‘rinadi.
Ikkinchi signal ulanish obyektida: yaroqsiz holat, uni tizim bu ilovada o‘rnatilgan konfiguratsiya bo‘lmaganda bildiradi. Tugallangan yuklashdan keyin yaroqsiz holat va nil protokol birga haqiqiy yo‘qlik, vaqt poygasi emas.
Ulanish o‘zgarishlari bildirishnoma sifatida keladi
load va savega berilgan ishlovchilar konfiguratsiyaga nima bo‘lganini bildiradi, tunnel nima qilayotganini emas. Ulanish paytida ulardan birining ishga tushishini kutish hech qachon hal bo‘lmaydigan poygadir. Buning o‘rniga holat o‘zgarishi bildirishnomasini kuzating va u kelganda ulanish obyektining joriy qiymatini o‘qing.
Konfiguratsiya o‘rnatilgach, ulanish holati qisqa ketma-ketlikdan o‘tadi: uzilgan, ulanmoqda, ulangan, qayta tasdiqlamoqda, uzilmoqda. «Ulangan» tunnelni tavsiflaydi, uning orqasidagi serverni emas, shuning uchun bu trafik oqayotganining dalili emas. On-demand ilova to‘xtatilgan holda ham tunnelni ko‘tarishi mumkin, va o‘shanda bildirishnoma yangilaydigan narsangiz bo‘lishidan oldin keladi.
Cheklangan proksi surati — ishora, hukm emas
CFNetwork ilovaga tizimning joriy proksi sozlamalarini bera oladi, va bu natija ichida interfeys nomi bilan kalitlangan cheklangan lug‘at bor. tun, utun, ppp, ipsec yoki tap bilan boshlanadigan nomni ko‘rish tunnel borligiga ishoradir. Bu ilova ko‘ra oladigan narsaning surati bo‘lib qoladi, paketlar qayerga ketishi haqidagi bayonot emas.
Provayderlar nomlashda kelishmaydi, shuning uchun yo‘q prefiks hech narsani isbotlamaydi, va mavjud interfeys trafik tashimasdan ham bo‘lishi mumkin. Erishuvchanlik undan ham zaif: xususiy manzilga muvaffaqiyatli so‘rov o‘sha paytda o‘sha so‘rov uchun yo‘l ishlaganini ko‘rsatadi, VPN o‘rnatilganini emas.
Simulyator Macni qarzga oladi, boshqa ilovalar esa ko‘rinmas qoladi
Simulyatorning o‘z tarmoq steki yo‘q; u qiladigan har bir ulanish Macniki. Shuning uchun host Macda ishlayotgan VPN simulyatsiya qilingan ilova uchun allaqachon amalda, va simulyatorning o‘z sozlamalari hech narsani ko‘rsatmaydi. Agar tunnel simulyator ishga tushgandan keyin ko‘tarilgan bo‘lsa, uni qayta ishga tushirish odatda ilovani disk raskadrovka qilishdan tezroq. Nostandart portdagi hostga o‘sha port URLda kerak, yoki socat TCP-LISTEN:12345,fork TCP:host:12345 kabi mahalliy yo‘naltirish kerak.
Ommaviy APIlar boshqa ilovalarga yoki konfiguratsiya profillariga tegishli VPN profillarini sanab o‘tmaydi. Bitta ma’lum ilova uchun canOpenURL orqali URL sxemasini tekshirish ko‘chiriladigan usul, va iOS 9dan boshlab so‘ralgan sxema Info.plist faylingizda e’lon qilinishi kerak; uni tashlab ketsangiz, chaqiruv false qaytaradi. OpenVPN Connect openvpn:// ga javob beradi, bu uni yaxshi misol va yomon umumiy aniqlagichga aylantiradi.
Uch kuzatuvni birlashtiring va ular nimani anglatishini ayting
Amalda uch natijani ustma-ust qo‘ying: yuklangan va yoqilgan konfiguratsiya, yaroqsiz bo‘lmagan ulanish holati, va faqat tunnel orqali yetib boriladigan manzilga so‘rov. Har biri yakka holda chalg‘itadi; birgalikda ular ilova nimalarni bilishi mumkinligini aytadi, foydalanuvchi nimani taxmin qilishini emas.
Natijani diagnostikangizda bitta boolean sifatida emas, uch qator sifatida yozing. Foydalanuvchi VPN o‘chirilgan deb aytsa, ilovangiz esa rozi bo‘lmasa, uch qator qaysi kuzatuv chetlashganini ko‘rsatadi, va bu — chora ko‘rishingiz mumkin bo‘lgan qo‘llab-quvvatlash bileti bilan «menda ishlaydi» deb tugaydigan bilet orasidagi farq.