Paketni chetlatish blok emas, marshrutlash yoʻriqnomasi, shuning uchun VPN ulanagandan keyin yuklanadigan sahifalar kutilgan natija, nosozlik isboti emas. Chetlatish ilovani bloklash oʻrniga tunneldan chiqaradi va oddiy tarmoq uning trafigini tashiydi. Bu yerda ikki alohida siyosat uchrashadi: biri jarayonlarni tanlaydi, ikkinchisi manzillarni. Ularni shu tartibda oʻqish ulangan belgi va ishlayotgan ilova nima uchun qarama-qarshilik emasligini tushuntiradi.

Chetlatish tarmoqni nima uchun ochiq tutadi

VpnService.Builder yo ruxsat roʻyxatini, yo taqiq roʻyxatini qabul qiladi, hech qachon ikkalasini emas. Tunneldan faqat ruxsat roʻyxatidagi paketlar oʻtadi. Taqiq roʻyxati buni teskari qiladi: roʻyxatdagilardan boshqa har bir paket tunneldan foydalanadi, roʻyxatdagilar esa jismoniy yoʻlni saqlaydi. Ruxsat roʻyxatida yoʻq paket ham tunneldan tashqarida boʻladi, shuning uchun bu rejimda koʻpchilik ilovalar uchun chetlatish odatiy holat.

Bu mahalliy taqiq yozuvini xavfsizlik devori qoidasi emas, marshrutlash qaroriga aylantiradi. Agar talab ilovaning xostga yetib borishini toʻxtatish boʻlsa, tunnel uni qamrab olishi, server yoki mahalliy siyosat esa trafikni rad etishi kerak. Ilovani tunneldan chiqarish faqat uning paketlarini qaysi interfeys tashishini oʻzgartiradi.

Play Store holati odatiy qasddan qilingan misol. Doʻkon paketini chetlatish, VPN chiqishi uzatishga xalaqit berganda yuklab olishlarga asosiy ulanishdan foydalanish imkonini beradi va chetlatish blok emas, chetlanish ekanini koʻrsatadi.

Bitta profil, bitta roʻyxat

Ikkala chaqiruv ishlatilsa, quruvchi istisno tashlaydi, shuning uchun oldingizdagi profil yo ruxsat, yo taqiq roʻyxati. Aynan shu bir fakt har bir keyingi kuzatuvni qanday oʻqishni belgilaydi. Marshrutlash jadvalidan oldin kodni yoki boshqariladigan konfiguratsiyani tekshiring, chunki roʻyxatning oʻzi qolgan chiqish maʼnosini hal qiladi. Gibrid profil kuzatish mumkin boʻlgan holat emas.

Bu farq yangi oʻrnatilgan ilova nima qilishini ham oldindan aytadi. Ruxsat roʻyxatida kimdir qoʻshmaguncha u tashqarida qoladi, taqiq roʻyxatida esa sukut boʻyicha tunnelga qoʻshiladi.

Boshqariladigan konfiguratsiyalar oʻsha tanlovni boshqa kalit nomlari ostida taqdim etadi va baʼzi konsollar uni roʻyxat emas, har bir ilova uchun VPN rejimi deb taʼriflaydi. Xatti-harakat baribir oʻsha ikki chaqiruvga qisqaradi, shuning uchun yorliqqa ishonish oʻrniga sozlamani paketlar roʻyxatigacha kuzatib boring. Agar yorliq va roʻyxat mos kelmasa, roʻyxat yutadi.

UID qoidasini tunnel jadvaligacha kuzatib boring

Android har bir ilovaga oʻzining Linux foydalanuvchi ID sini beradi va VPN xizmati UID oraliqlariga mos keladigan siyosat qoidalarini oʻrnatadi. Mos keladigan trafik sukut marshruti tun qurilmasiga ishora qiladigan marshrutlash jadvaliga yuboriladi. Jadval raqami har bir VPN nusxasi uchun ajratiladi, shuning uchun qayta ulangandan yoki ikkinchi VPN profili yaratilgandan keyin oʻzgaradi.

Qoidalar chiqishi xaritadir. Har bir satr qidiruv jadvalini nomlaydi va oʻsha jadval mos keladigan paketlar tunnelga kirishini hal qiladigan sukut marshrutini saqlaydi.

adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>

UID olish uchun avval uchinchi buyruqni ishga tushiring, keyin oraligʻi uni oʻz ichiga olgan qoidani toping. Oʻsha qoida jadval raqamiga ishora qiladi va ip route show table <n> shu raqam bilan tun qurilmasi orqali sukut marshruti bor-yoʻqligi koʻrinadi. Jadvalda sukut boʻlmasa, ilova tanlangan, ammo yoʻli yoʻq, bu boshqa nosozlik.

Bu buyruqlar tuzatish mumkin boʻlgan build yoki adb shell tarmoq holatini oʻqiy oladigan qurilma talab qiladi. Ishlab chiqarish telefonida paket menejeri hali ham javob beradi, lekin marshrutlash tekshiruvi rad etilishi mumkin, shuning uchun qoʻlingizdan kelganini yozib oling va qolganini tasdiqlanmagan deb hisoblang.

Marshrut ilovani emas, prefiksni talab qiladi

Builder.addRoute tunnel uchun manzil prefikslarini talab qiladi. Faqat 10.0.0.0/8 qoʻshadigan profil oʻsha prefiksni tunneldan yuboradi va qolgan har bir manzilni jismoniy yoʻlda qoldiradi. Bu odatiy boʻlingan tunnellash va qoidalar qaysi ilovalarni tanlaganiga bogʻliq emas.

Serverdan yuborilgan konfiguratsiya ham shu modelni aks ettiradi. Alohida marshrut yuborishlari prefikslar qoʻshadi, redirect-gateway direktivasi esa sukut marshrutini almashtiradi va tunnel qamrab olgan ilovalar uchun hammasini ushlab qoladi. Oʻsha direktivani olib tashlash qurilmada hech qanday oʻzgarishsiz ishlayotgan tunnelni bitta quyi tarmoqqacha kichraytirishi mumkin.

Gʻayrioddiy shlyuz yoki metrik kvalifikatorli yuborilgan marshrut ham oʻrnatilmasligi mumkin. Oddiy prefiks shaklini afzal koʻring va yoʻnaltirish hamda NAT ni serverga qoldiring.

Sozlamani oʻzgartirishdan oldin kesishmani oʻqing

Tunnel qamrab olingan jarayonlar va talab qilingan manzillarning kesishmasini tashiydi. Eʼlon qilingan prefikslardan tashqari manzil soʻragan qamrab olingan ilova jismoniy tarmoq orqali chiqadi. Taqiqlangan paket oʻsha prefikslar ichidagi manzilni soʻrasa ham tashqarida qoladi. Ikkalasi ham xato emas; ikkalasi ham ikki siyosat oʻz ishini qilmoqda.

Har bir ilova uchun VPN bogʻlangan ilovani ulanishsiz ham qoldirishi mumkin. on-demand oʻchirilgan va tunnel pastda boʻlganda, ilova har bir ilova uchun VPN ga bogʻlangan holda qoladi va zaxira yoʻli yoʻq, bu siyosat holati emas, buzilgan ilova kabi koʻrinadi. on-demand ni yoqish yoki bogʻlanishni boshqaruv orqali olib tashlash buni oʻzgartiradi.

LayerWhat it selectsWhere to lookTypical mismatch
Package listProcessesBuilder calls or managed configurationApp excluded but expected to be blocked
UID policy ruleWhich table a UID usesip rule showTunnel icon on, app still on Wi-Fi
Routing tableDestinations for matched trafficip route show table <n>Covered app reaches only one subnet
Server pushPrefixes offered to the clientServer route configurationTunnel shrinks after a server edit

Bir vaqtning oʻzida bitta oʻqni tashxislang. Avval ruxsat yoki taqiqni tasdiqlang, ikkinchi navbatda oʻrnatilgan UID qoidalari va jadvallarni oʻqing, oxirida oʻsha manzilga qarshi ikkinchi ilovani sinab koʻring. Ikkinchi ilova bitta soʻrovda jarayon tanlovini manzil tanlovidan ajratadi.

Natijani ilova, manzil va jadval raqami sifatida yozib qoʻying. Keyingi oʻzgarish aynan shu uchlikni saqlashi kerak.

O'xshash maqolalar