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

Ове наредбе траже build који се може отклањати грешке или уређај на којем adb shell може читати стање мреже. На производном телефону управник пакета ипак одговара, али преглед усмеравања може бити одбијен, па забележите шта можете и остатак третирајте као непотврђен.

Рута тражи префикс, а не апликацију

Builder.addRoute тражи префиксе одредишта за тунел. Профил који додаје само 10.0.0.0/8 шаље тај префикс кроз тунел и оставља свако друго одредиште на физичком путу. То је обично раздвојено тунелирање и независно је од тога које су апликације правила одабрала.

Конфигурација коју гура сервер пресликава исти модел. Појединачна гурања рута додају префиксе, док redirect-gateway директива замењује подразумевану руту и хвата све за апликације које тунел покрива. Уклањање те директиве може смањити радни тунел на једну подмрежу без икакве промене на уређају.

Гурнута рута с неуобичајеним gateway-ом или метричким квалификатором такође се можда неће инсталирати. Преферирајте обичан облик префикса и пустите серверу да се бави прослеђивањем и NAT-ом.

Прочитајте пресек пре него што промените подешавање

Тунел носи пресек покривених процеса и тражених одредишта. Покривена апликација која тражи адресу изван објављених префикса излази физичком мрежом. Забрањени пакет остаје напољу чак и када тражи адресу унутар тих префикса. Ниједан случај није грешка; оба су две политике које раде свој посао.

VPN по апликацији може и повезану апликацију оставити без везе. Када је on-demand искључен и тунел не ради, апликација остаје везана за VPN по апликацији и нема резервни пут, што изгледа као покварена апликација, а не као стање политике. Укључивање on-demand-а или уклањање везе кроз управљање то мења.

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

Дијагностикујте једну ос одједном. Прво потврдите допуштање или забрану, друго прочитајте инсталирана UID правила и табеле, а на крају тестирајте другу апликацију према истом одредишту. Друга апликација раздваја одабир процеса од одабира одредишта у једном захтеву.

Запишите резултат као апликација, одредиште и број табеле. Тај тројац је оно што следећа промена мора сачувати.

Повезани чланци