Чыгарылган колдонмо дагы эле онлайнбы? Колдонмо жана маршрут эрежелери башка
Android колдонмосун VPN'ден чыгаруу аны бөгөттөбөйт. Уруксат тизмелери, UID эрежелери жана жиберилген маршруттар жолдун ар башка бөлүгүн аныктайт.
Пакетти чыгаруу — бөгөттөө эмес, маршруттоо көрсөтмөсү, ошондуктан VPN туташкандан кийин жүктөлгөн барактар күтүлгөн нерсе, бузулуунун далили эмес. Чыгаруу колдонмону бөгөттөөнүн ордуна туннелден алып салат, ал эми кадимки тармак анын трафигин ташыйт. Бул жерде эки өзүнчө саясат кезигет: бири процесстерди тандайт, экинчиси багыттарды. Аларды ушундай тартипте окуу туташкан белги менен иштеп жаткан колдонмо карама-каршылык эмес экенин түшүндүрөт.
Эмне үчүн чыгаруу тармакты ачык кармайт
VpnService.Builder же уруксат тизмесин, же тыюу тизмесин кабыл алат, экөөнү тең эч качан албайт. Туннелден уруксат тизмесиндеги пакеттер гана өтөт. Тыюу тизмеси муну тескерилейт: тизмедегилерден башка ар бир пакет туннелди колдонот, ал эми тизмедегилер физикалык жолду сактайт. Уруксат тизмесинде жок пакет да туннелден тышкары, ошондуктан бул режимде чыгаруу көпчүлүк колдонмолор үчүн кадимки абал.
Бул жергиликтүү тыюу жазуусун firewall эрежеси эмес, маршруттоо чечимине айландырат. Эгер талап колдонмонун хостко жетүүсүн токтотуу болсо, туннел аны камышы керек, ал эми сервер же жергиликтүү саясат трафикти четке кагышы керек. Колдонмону туннелден алуу анын пакеттерин кайсы интерфейс ташый турганын гана өзгөртөт.
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 эрежелерин жана таблицаларды окуңуз, акырында ошол эле багытка каршы экинчи колдонмону сынап көрүңүз. Экинчи колдонмо бир сурамда процесс тандоону багыт тандоодон ажыратат.
Жыйынтыкты колдонмо, багыт жана таблица номери катары жазыңыз. Кийинки өзгөртүү ушул үчилтикти сакташы керек.