Tunnel ko'tarilgan lahzada Android ilovasi ishlashdan to'xtasa, uch xil narsa aybdor bo'lishi mumkin va ular o'xshash ko'rinadigan nosozliklar keltirib chiqaradi. Ilova telefonning o'z tarmoq holatini o'qib, mahalliy ravishda rad etishi mumkin. Server siz kelayotgan manzilni tasniflab, uni rad etishi mumkin. Yoki rad etish VPN bilan umuman bog'liq bo'lmasligi mumkin. Quyidagi tartib biror narsani o'zgartirishdan oldin dalillarni to'playdi, chunki chiqishni almashtirish eng qimmat qadam bo'lib, tekshiruv mahalliy bo'lsa, yordam berish ehtimoli eng past.

Qadam 1: ilova qachon rad etishini aniqlang

Vaqt birinchi ajratuvchidir. Jurnal buferini tozalang, nosozlikni qayta hosil qiling va ilova shikoyat qilishdan oldin nima qilganini ko'ring:

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

Agar ilova har qanday chiquvchi so'rov urinishidan oldin rad etsa, siz mahalliy qaror bilan ish ko'ryapsiz. Agar u ulanib, biror narsa yuborib, shundan keyingina xato ko'rsatsa, rad etish boshqa tomondan kelgan. Agar ilova tunnel o'chirilganda ham xuddi shunday ishlamay qolsa, VPN hech qachon o'zgaruvchi bo'lmagan.

Bu vaqtni dalil sifatida qabul qiling, hukm sifatida emas. Ilova keshlangan javobni qayta ijro etishi mumkin, fon so'rovlari siz qarashdan oldin muvaffaqiyatli yoki muvaffaqiyatsiz bo'lgan bo'lishi mumkin. Faqat xabar paydo bo'lgan lahzani emas, oxirgi muvaffaqiyatli so'rov va xatoning vaqt belgilarini yozib oling.

Qadam 2: telefonning tarmoq haqidagi o'z ko'rinishini o'qing

Android VPN holatini tarmoq qobiliyati sifatida ko'rsatadi, shuning uchun ilovaga faol tunnelni payqash uchun tijoriy provayderlar ro'yxati kerak emas. U ulanish xizmatidan joriy tarmoq qaysi ekanini so'raydi va javobda VPN transport biti bo'ladi:

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

Bu tekshiruv mahalliy va arzon, va u hech qanday masofaviy tasniflashsiz "bu ilova VPN orqali ishlamaydi" degan hisobotlarning butun sinfini tushuntiradi. Ilova ko'rishi mumkin bo'lgan narsa baribir uning o'z tarmoq kontekstiga bog'liq, shuning uchun har bir ilova qurilmadagi har bir profilni tekshiradi deb o'ylamang.

Ish stansiyasidan xuddi shu holatni adb shell dumpsys connectivity yordamida va VPN tarmoq yozuvini qidirib sinov qurilmasida ko'rishingiz mumkin. Tunnel ko'tarilgan ishga tushirishni u tushirilgan bilan solishtiring va ikkala natijani saqlang.

Qadam 3: server aslida nimani ko'rishini o'qing

Boshqa kuzatuvchi — xizmat. U kelayotgan manba manzilini ko'radi va manzil, uning orqasidagi xosting tarmog'i, mintaqa, operator yoki hisob va qurilma bilan bog'liq signallar asosida harakat qilishi mumkin. Ularning hech biri noyob shaxsiyat emas, umumiy manzillash yon blokirovkalarni odatiy holga aylantiradi: bitta cheklangan manzil xuddi shu tarjima orqasidagi aloqasiz foydalanuvchilarni o'chirib qo'yishi mumkin.

Manzilni ilova ishlatadigan yo'l bilan oling, noutbukdagi brauzerdan emas. Telefonda manzil aks-sadosi xizmatiga oddiy so'rov uzoq tomon nimani qabul qilishini ko'rsatadi, uni uyali tarmoq orqali qilingan so'rov bilan solishtirish esa manzil umuman o'zgarganmi-yo'qmi, aytadi.

Agar ilova uyali tarmoqda ishlab, xuddi shu hisob bilan tunnel orqali ishlamay qolsa, rad etish uzoq tomonda yoki ilovaning o'z siyosatida. Ikkalasida ham ishlamay qolsa, VPN farq emas va siz oxirgi nuqtalarni sinashni to'xtatishingiz kerak.

Qadam 4: dalillarni uchta hukmdan biriga moslang

Uch kombinatsiya deyarli har bir hisobotni qamrab oladi. Tunnel faol bo'lganda chiquvchi urinishsiz rad etish mahalliy transport tekshiruviga ishora qiladi. Chiqib, xato bilan qaytadigan so'rov, ma'lum bir xostda vaqt tugashi yoki mintaqa haqidagi xabar uzoq tomonga ishora qiladi. Tunnel bo'lmasdan uyali tarmoqda takrorlanadigan nosozlik hisob, ilova versiyasi yoki xizmatning o'z siyosatiga ishora qiladi va hech qanday VPN o'zgarishi uni qimirlatmaydi.

Hukmni uni keltirib chiqargan dalillar bilan yozing. Bu qadamning qiymati shundaki, u telefondagi tekshiruvni tuzatish uchun kimdir to'rt marta chiqish tugunlarini almashtiradigan halqani to'xtatadi.

Bu, shuningdek, da'volarni halol saqlaydi. O'z serveringizni joylashtirish oxirgi nuqta va uning internet chiqishini o'zgartiradi; u Androidga VPN tarmog'i faol ekanini unittirmaydi va manzillarni tasniflaydigan xizmat tomonidan qabul qilinishiga kafolat bermaydi. Mahalliy filtr sizga tegishli VPN tarmog'ida ham tijoriy tarmoqdagi kabi oson ishga tushishi mumkin.

Qadam 5: qo'llab-quvvatlanadigan yo'lni tanlang va uni tekshiring

Mahsulotning hujjatlashtirilgan siyosati va uning qo'llab-quvvatlash egasidan boshlang. Mijoz versiyasini, aniq xabarni va nosozlikning tor oynasini yuboring; xato borligini isbotlash uchun to'liq trafik yozuvlari yoki hisob ma'lumotlarini yubormang.

Agar xizmat to'g'ridan-to'g'ri kirishga ruxsat bersa va qurilma siyosati ham ruxsat bersa, bitta ilovani chiqarib tashlash qo'llab-quvvatlanadigan mexanizm bo'lib, u tunnelni yashirish o'rniga o'sha ilovani tunnel ichidan ataylab olib tashlaydi. Shunda ilova trafigi o'z yo'li bilan chiqadi, bu esa kimdir mas'uliyatni olishi kerak bo'lgan siyosiy qaror. VPNsiz bloklash konfiguratsiyasida chiqarib tashlangan ilova shunchaki ulanishni yo'qotishi mumkin, shuning uchun ishlaydi deb va'da berishdan oldin bu kombinatsiyani sinab ko'ring.

Har qanday o'zgarishdan so'ng birinchi qadamning vaqt sinovini takrorlang, ilova ishlayotganini va boshqa barcha ilovalar hali ham tunneldan foydalanayotganini tasdiqlang. So'ng oldingi konfiguratsiyani tiklang va nosozlik qaytadimi-yo'qmi tekshiring, chunki qayta hosil qila olmaydigan tuzatish yana duch keladigan tasodifdir.

O'xshash maqolalar