Android колдонмосу туннель көтөрүлгөн учурда иштөөнү токтотсо, үч башка нерсе күнөөлүү болушу мүмкүн жана алар окшош көрүнгөн бузулууларды жаратат. Колдонмо телефондун өзүнүн тармак абалын окуп, жергиликтүү түрдө баш тартышы мүмкүн. Сервер сиз келген даректи классификациялап, аны четке кагышы мүмкүн. Же баш тартуунун VPNге эч кандай тиешеси жок болушу мүмкүн. Төмөнкү тартип бир нерсени өзгөртүүдөн мурун далилдерди чогултат, анткени чыгууну алмаштыруу эң кымбат кадам жана текшерүү жергиликтүү болсо, жардам берүү ыктымалдыгы эң төмөн кадам.

1-кадам: колдонмо качан баш тартарын аныктаңыз

Убакыт – биринчи айырмалоочу белги. Журнал буферин тазалап, бузулууну кайталаңыз жана колдонмонын каткы чейин эмне кылганын караңыз:

adb logcat -c
# reproduce the failure in the app
adb logcat -d | grep -iE 'vpn|network|connect|http' | tail -60

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

Бул убакытты далил катары караңыз, ырастоо катары эмес. Колдонмо кэштеленген жоопту кайра ойнотушу мүмкүн, ал эми фондук сурамдар сиз караганга чейин ийгиликтүү же ийгиликсиз болушу мүмкүн. Акыркы ийгиликтүү сурамдын жана катанын убакыт белгилерин жазыңыз, билдирүү чыккан учурду гана эмес.

2-кадам: телефондун тармакка өз көз карашын окуңуз

Android VPN абалын тармак мүмкүнчүлүгү катары көрсөтөт, ошондуктан колдонмого туннелдин активдүү экенин байкоо үчүн коммерциялык провайдерлердин тизмеси керек эмес. Ал туташуу кызматынан азыркы тармак кайсы экенин сурайт, жана жоопто VPN транспортунун бити болот:

val cm = context.getSystemService(ConnectivityManager::class.java)
val caps = cm.getNetworkCapabilities(cm.activeNetwork)
val onVpn = caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true

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

Жумуш станциясынан сиз сыноо түзмөгүндө adb shell dumpsys connectivity аркылуу жана VPN тармак жазуусун издеп так ушул абалды көрө аласыз. Туннель көтөрүлгөн жүгүртүүнү туннель түшүрүлгөн жүгүртүү менен салыштырыңыз жана эки чыгарылышты тең сактаңыз.

3-кадам: сервер чындыгында эмнени көрөрүн окуңуз

Экинчи байкоочу – кызмат. Ал келип жаткан булак дарегин көрөт жана дарекке, анын артындагы хостинг тармагына, аймакка, операторго же аккаунт жана түзмөк менен байланышкан сигналдарга жараша аракет кылышы мүмкүн. Алардын эч бири уникалдуу инсандык эмес, ал эми бөлүшүлгөн даректөө капталдагы блоктоолорду кадимки көрүнүшкө айландырат: бир чектелген дарек ошол эле котормонун артындагы байланышсыз колдонуучуларды да иштен чыгарышы мүмкүн.

Даректи колдонмо колдонгон ошол эле жол менен алыңыз, ноутбуктагы браузерден эмес. Телефондо дарек жаңыртуу кызматына жөнөкөй сурам алыскы тарап эмнени аларын көрсөтөт, ал эми аны уюлдук тармак аркылуу жөнөтүлгөн сурам менен салыштыруу даректин таптакыр өзгөргөнүн билдирет.

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

4-кадам: далилдерди үч өкүмдүн бирине шайкеш келтириңиз

Үч айкалыш дээрлик бардык отчетторду камтыйт. Туннель активдүү кезде сырткы аракетсиз баш тартуу жергиликтүү транспорт текшерүүсүн көрсөтөт. Сыртка чыгып, ката, белгилүү бир хостто убакыттын бүтүшү же аймак билдирүүсү менен кайткан сурам алыскы тарапты көрсөтөт. Туннель жок уюлдук тармакта кайталанган бузулуу аккаунтка, колдонмо версиясына же кызматтын өз саясатына көрсөтөт, жана эч кандай VPN өзгөртүү аны козгобойт.

Өкүмдү аны жараткан далил менен бирге жазыңыз. Бул кадамдын баалуулугу – ал телефондун өзүндө жүргөн текшерүүнү оңдоо үчүн бирөөнүн чыгуу түйүндөрүн төрт жолу алмаштырган циклди токтотот.

Ал ошондой эле ырастоолорду адал кармайт. Өз хостингиңиз акыркы чекитти жана анын интернет чыгуусун өзгөртөт; ал Androidди VPN тармагы активдүү экенин унуттурбайт жана даректерди классификациялаган кызматтын кабыл алышына кепилдик бербейт. Жергиликтүү чыпка өз VPN тармагыңызда коммерциялык тармактагыдай эле оңой иштеп кетиши мүмкүн.

5-кадам: колдоого алынган жолду тандап, аны текшериңиз

Продукттун документтештирилген саясатынан жана анын колдоо ээсинен баштаңыз. Клиент версиясын, так билдирүүнү жана бузулуунун кууш убакыт терезесин жөнөтүңүз; ката бар экенин далилдөө үчүн гана толук трафик жазууларын же каттоо маалыматтарын жөнөтпөңүз.

Эгер кызмат түз кирүүгө уруксат берсе жана түзмөк саясаты да уруксат берсе, анда ар бир колдонмо боюнча чыгарып салуу – колдоого алынган механизм, жана ал туннелди жашыруунун ордуна ошол колдонмонун туннелден атайын чыгарат. Андан кийин колдонмонун трафиги өз жолу менен чыгат, бул бирөө мойнуна алышы керек болгон саясий чечим. VPNсиз блоктогон конфигурацияда чыгарылган колдонмо жөн гана байланышты жоготушу мүмкүн, ошондуктан иштейт деп убада кылардан мурун ошол айкалышты сынап көрүңүз.

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

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