Исклучената апликација останува онлајн? Правилата за апликации и рути се разликуваат
Исклучувањето 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 правила и табели, и на крајот тестирајте втора апликација кон истото одредиште. Втората апликација го одвојува изборот на процес од изборот на одредиште во едно барање.
Запишете го резултатот како апликација, одредиште и број на табела. Токму таа тројка треба да ја зачува следната промена.