iOS колдонмосунан телефон VPNдеби деп сураңыз, жана чыныгы жооп — ал сиз ойлогон мааниде муну биле албайт. SDK «түзмөк туннелде» деген жалаак бербейт, ал эми ошого жакындай алган жеке интерфейстер чыгарылуучу колдонмолор үчүн жабык. Сиз өз колдонмөңүздүн конфигурациясын, ага байланган абалды жана тармактык стектен бир-эки кыйыр белгини байкай аласыз. Ар бири башка суроого жооп берет, жана бузулган текшерүүлөрдүн көбү алардын бирин толук жооп деп кабыл алуудан келип чыгат.

Бир VPN желеги тууралуу уламыш

Ишеним боюнча SDKнын бир жеринде түзмөктүн туннелде экенин билдирүүчү касиет бар, дал жеткиликтүүлүк желеги хосттун жооп берерин билдиргендей. Мындай жарыя касиет жок. Ал тургай бар болсо да, «туннел бар» жана «менин трафигим аны колдонот» — эки башка ырастоо, жана көпчүлүк колдонмо үчүн экинчиси гана маанилүү.

Дал ушул ажырым бир саптуу VPN детекторун жарнамалаган китепканалар интерфейс аты же прокси ачкычы сыяктуу назик нерсени окуп, аны өкүм катары сунушташынын себеби.

nilге ишенүүдөн мурун параметрлерди жүктөңүз

Жалпы менеджердин үлгүсү сураган замат эле бар, бирок анын протокол касиети жүктөө callbackы бүткөнчө nil бойдон калат. Ошондуктан nil протокол «алы күчө жүктөлгөн жок» дегенди «орнотулган жок» дегенден кем эмес жыштыкта билдирет. Окууну бүтүрүү блогунун ичинде жасаңыз, жана ошондон кийин гана чечиңиз: бар протокол объектиси, күйгүзүү желеги күйүк турганда — «орнотулган» деген ушундай көрүнөт.

Экинчи сигнал туташуу объектисинде: жараксыз абал, аны система бул колдонмодо орнотулган конфигурация жок болгондо билдирет. Бүткөн жүктөөдөн кийин жараксыз абал жана nil протокол бирге чыныгы жоктук, убакыт жарышы эмес.

Туташуу өзгөрүүлөрү билдирүү катары келет

load жана saveке берилген иштеткичтер конфигурацияга эмне болгонун билдирет, туннелдин эмне кылып жатканын эмес. Туташуу учурунда алардын бири ишке киришин күтүү — эч качан чечилбеген жарыш. Анын ордуна статус өзгөрүүсүнүн билдирүүсүн көзөмөлдөңүз жана ал келгенде туташуу объектисинин учурдагы маанисин окуңуз.

Конфигурация орнотулгандан кийин туташуу абалы кыска ырааттуулуктан өтөт: ажыратылган, туташып жатат, туташкан, кайра ырастоодо, ажыратууда. «Туташкан» туннелди сүрөттөйт, анын артындагы серверди эмес, ошондуктан бул трафиктин агып жатканынын далили эмес. On-demand колдонмо токтотулган учурда да туннелди көтөрө алат, жана ошондо билдирүү жаңырта турган нерсе жок кезинде келет.

Чектелген прокси сүрөтү — белги, өкүм эмес

CFNetwork колдонмого системанын учурдагы прокси жөндөөлөрүн бере алат, жана ошол натыйжанын ичинде интерфейс аты боюнча ачкычталган чектелген сөздүк бар. tun, utun, ppp, ipsec же tap менен башталган атты көрүү — туннелдин бар экендигинин белгиси. Бул ушул колдонмо көрө алган нерсенин сүрөтү бойдон калат, пакеттер кайда бараары тууралуу билдирүү эмес.

Провайдерлер ат коюуда макул эмес, ошондуктан префикс жок болушу эч нерсени далилдебейт, ал эми бар интерфейс трафик ташыбай эле болушу мүмкүн. Жеткиликтүүлүк андан да алсыз: жеке дарекке ийгиликтүү суроо ошол учурда ошол суроо үчүн жол иштегенин көрсөтөт, VPN орнотулганын эмес.

Симулятор Macды карызга алат, ал эми башка колдонмолор көрүнбөй калат

Симулятордун өз тармактык стеги жок; ал түзгөн ар бир туташуу Macдики. Ошондуктан хост Macде иштеп жаткан VPN симуляцияланган колдонмо үчүн эбак күчүндө, ал эми симулятордун өз жөндөөлөрү эч нерсе көрсөтпөйт. Эгер туннел симулятор башталгандан кийин көтөрүлсө, аны кайра баштоо колдонмодогу каталарды оңдоодон адатта тезирээк. Стандарттык эмес порттогу хостко ошол порт URLде керек, же socat TCP-LISTEN:12345,fork TCP:host:12345 сыяктуу жергиликтүү багыттоо керек.

Жарыя APIлер башка колдонмолорго же конфигурация профилдерине таандык VPN профилдерин тизмелей албайт. Бир белгилүү колдонмо үчүн canOpenURL аркылуу URL схемасын текшерүү — көчүрүүгө боло турган ыкма, ал эми iOS 9дон баштап суралган схема Info.plistте жарыяланышы керек; аны калтырсаңыз, чакыруу false кайтарат. OpenVPN Connect openvpn://ге жооп берет, бул аны жакшы мисал жана начар жалпы детектор кылат.

Үч байкоону бириктирип, алар эмнени билдирерин айтыңыз

Иш жүзүндө үч натыйжаны каттаңыз: жүктөлгөн жана күйүк конфигурация, жараксыз эмес туташуу абалы, жана туннел аркылуу гана жетүүгө боло турган дарекке суроо. Ар бири өзүнчө адаштырат; бирге алынганда алар колдонмо эмнени биле аларын айтат, колдонуучу эмнени божомолдогонун эмес.

Натыйжаны диагностикаңызда бир boolean эмес, үч сап кылып жазыңыз. Колдонуучу VPN өчүк деп айтканда, ал эми колдонмоңуз макул болбосо, үч сап кайсы байкоо четтеп кеткенин көрсөтөт, жана бул — аракет кыла алган колдоо билети менен «менде иштейт» деп бүткөн билеттин айырмасы.

Тектеш макалалар