Хасагдсан апп онлайн хэвээр байна уу? Апп болон маршрутын дүрэм өөр
Android аппыг VPN-ээс хасах нь түүнийг блоклохгүй. Зөвшөөрлийн жагсаалт, UID дүрэм, илгээсэн маршрутууд замны өөр хэсгийг тодорхойлно.
Багц хасах нь блоклох биш, маршрутлалтын заавар тул VPN холбогдсоны дараа ачаалагдах хуудсууд хүлээгдэж буй зүйл бөгөөд алдааны баталгаа биш. Хасвал аппыг блоклохын оронд туннелээс гаргаж, энгийн сүлжээ түүний урсгалыг зөөнө. Энд хоёр тусдаа бодлого таарна: нэг нь процессуудыг, нөгөө нь хүрэх газрыг сонгоно. Тэдгээрийг энэ дарааллаар уншихад холбогдсон дүрс болон ажиллаж буй апп яагаад зөрчил биш болохыг тайлбарлана.
Хасалт яагаад сүлжээг нээлттэй үлдээдэг вэ
VpnService.Builder зөвшөөрлийн жагсаалт эсвэл хориглох жагсаалтын аль нэгийг л авна, хэзээ ч хоёуланг нь авдаггүй. Туннелээр зөвхөн зөвшөөрлийн жагсаалт дахь багцууд гарна. Хориглох жагсаалт үүнийг эргүүлнэ: жагсаалтад байгаачаас бусад багц бүр туннелийг ашиглана, жагсаалтад байгаа нь физик замыг хадгална. Зөвшөөрлийн жагсаалтад ороогүй багц ч туннелээс гадуур байна, тиймээс энэ горимд ихэнх аппын хувьд хасалт нь хэвийн байдал юм.
Энэ нь локал хориглох бичлэгийг галт хананы дүрэм биш, маршрутлалтын шийдвэр болгоно. Аппыг хост хүрэхээс сэргийлэх шаардлагатай бол туннел түүнийг хамрах ёстой бөгөөд сервер эсвэл локал бодлого урсгалыг татгалзах ёстой. Аппыг туннелээс гаргах нь зөвхөн түүний багцуудыг аль интерфейс зөөхийг өөрчилнө.
Play Store-ийн тохиолдол бол ердийн санаатай жишээ. Дэлгүүрийн багцыг хасах нь VPN-ийн гаралт дамжуулалтад саад болох үед татан авалтуудад үндсэн холболтыг ашиглах боломж олгож, хасалт нь блоклох биш тойрох гэсэн үг болохыг харуулна.
Нэг профайл, нэг жагсаалт
Хоёр дуудлагыг хоёуланг нь ашиглавал бүтээгч үл хамаарах зүйл шиднэ, тиймээс таны өмнөх профайл зөвшөөрлийн эсвэл хориглох жагсаалт байна. Энэ ганц баримт дараагийн ажиглалт бүрийг хэрхэн уншихийг тодорхойлно. Маршрутын хүснэгтээс өмнө код эсвэл удирдлагын тохиргоог шалгаарай, учир нь жагсаалт үлдсэн гаралтын утгыг шийднэ. Холимог профайл бол ажиглаж болох төлөв биш.
Энэ ялгаа нь шинээр суулгасан апп юу хийхийг ч урьдчилан хэлнэ. Зөвшөөрлийн жагсаалтад хэн нэгэн нэмэх хүртэл гадаа үлдэх бол, хориглох жагсаалтад анхдагчаар туннелд орно.
Удирдлагын тохиргоонууд ижил сонголтыг өөр түлхүүрийн нэрээр харуулж, зарим консол үүнийг жагсаалт биш, апп тус бүрийн VPN горим гэж дүрсэлдэг. Зан үйл нь эцэстээ тэр хоёр дуудлагад хүрдэг тул шошгонд итгэхийн оронд тохиргоог багцын жагсаалт хүртэл буцаан мөрдөөрэй. Хэрэв шошго болон жагсаалт зөрвөл жагсаалт ялна.
UID дүрмийг дагаж туннелийн хүснэгт хүртэл оч
Android апп бүрт өөрийн Linux хэрэглэгчийн ID-г өгч, VPN үйлчилгээ UID-ийн мужтай таарсан бодлогын дүрэм суулгана. Таарсан урсгал анхдагч маршрут нь tun төхөөрөмж рүү заасан маршрутын хүснэгт рүү илгээгдэнэ. Хүснэгтийн дугаарыг VPN тохиолдол бүрт хуваарилдаг тул дахин холбогдсон эсвэл хоёр дахь VPN профайл үүсгэсний дараа өөрчлөгдөнө.
Дүрмүүдийн гаралт бол зураг. Мөр бүр хайлтын хүснэгтийг нэрлэх бөгөөд тэр хүснэгт нь таарсан багцууд туннелд орох эсэхийг шийдэх анхдагч маршрутыг хадгална.
adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>
UID авахын тулд эхлээд гурав дахь командыг ажиллуул, дараа нь мужид нь багтах дүрмийг ол. Тэр дүрэм хүснэгтийн дугаар руу заах бөгөөд ip route show table <n> тэр дугаарыг ашиглахад tun төхөөрөмжөөр дамжсан анхдагч маршрут байгаа эсэхийг харуулна. Хүснэгтэд анхдагч байхгүй бол апп сонгогдсон боловч замгүй, энэ нь өөр алдаа.
Эдгээр команд нь дибаг хийх боломжтой бүтээц эсвэл adb shell сүлжээний төлөвийг уншиж чадах төхөөрөмж шаардана. Үйлдвэрлэлийн утсанд багцын менежер хариу үйлдэл хийсээр байх боловч маршрутлалтын шалгалт татгалзагдаж болзошгүй тул чадах зүйлээ бичиж, үлдсэнийг баталгаажаагүй гэж үзээрэй.
Маршрут аппыг биш, префиксийг шаарддаг
Builder.addRoute туннелд зориулж хүрэх газрын префикс шаардана. Зөвхөн 10.0.0.0/8 нэмдэг профайл тэр префиксийг туннелээр илгээж, бусад бүх хүрэх газрыг физик замд үлдээнэ. Энэ бол энгийн хуваагдсан туннель бөгөөд дүрмүүд аль аппыг сонгосноос хамааралгүй.
Серверээс илгээсэн тохиргоо ижил загварыг тусгана. Тусдаа маршрутын илгээлт префикс нэмдэг бол redirect-gateway заавар анхдагч маршрутыг орлож, туннел хамарсан аппуудын бүх зүйлийг барьж авна. Тэр зааврыг хасвал төхөөрөмж дээр ямар ч өөрчлөлтгүйгээр ажиллаж буй туннель нэг дэд сүлжээ болж багасаж болно.
Хачирхалтай гарц эсвэл метрийн шалгууртай илгээсэн маршрут ч суулгагдахгүй байж болно. Префиксийн энгийн хэлбэрийг илүүд үзэж, дамжуулалт болон NAT-ыг серверт үлдээгээрэй.
Тохиргоог өөрчлөхийн өмнө огтлолцлыг унш
Туннель нь хамрагдсан процессууд болон шаардсан хүрэх газруудын огтлолцлыг зөөнө. Нийтэлсэн префиксээс гадуур хаяг хүссэн хамрагдсан апп физик сүлжээгээр гарна. Хориглосон багц тэдгээр префикс доторх хаяг хүссэн ч гадаа үлдэнэ. Аль ч тохиолдол алдаа биш; хоёулаа хоёр бодлого өөрийн ажлыг хийж байгаа хэрэг.
Апп тус бүрийн VPN нь холбогдсон аппыг холболтгүй орхиж болно. on-demand унтарсан, туннель доош байхад апп нь апп тус бүрийн VPN-д уягдсан хэвээр үлдэж, нөөц замгүй болно, энэ нь бодлогын төлөв биш, эвдэрсэн апп мэт харагдана. on-demand-ыг асаах эсвэл удирдлагаар холбоосыг арилгах нь үүнийг өөрчилнө.
| Layer | What it selects | Where to look | Typical mismatch |
|---|---|---|---|
| Package list | Processes | Builder calls or managed configuration | App excluded but expected to be blocked |
| UID policy rule | Which table a UID uses | ip rule show | Tunnel icon on, app still on Wi-Fi |
| Routing table | Destinations for matched traffic | ip route show table <n> | Covered app reaches only one subnet |
| Server push | Prefixes offered to the client | Server route configuration | Tunnel shrinks after a server edit |
Нэг удаад нэг тэнхлэгийг оношил. Эхлээд зөвшөөрөх эсвэл хориглохыг батал, хоёрдугаарт суулгасан UID дүрэм болон хүснэгтүүдийг унш, эцэст нь ижил хүрэх газар руу хоёр дахь аппыг туршиж үз. Хоёр дахь апп нь нэг хүсэлтэд процессын сонголтыг хүрэх газрын сонголтоос тусгаарлана.
Үр дүнг апп, хүрэх газар, хүснэгтийн дугаар гэж бичээрэй. Дараагийн өөрчлөлт яг энэ гурвыг хадгалах ёстой.