Radna aplikacija ne uspijeva na upravljanom telefonu, neko provjeri VPN prekidač, vidi da je uključen i proglasi put zdravim. Tu se zaustavlja većina ovih dijagnostika, i to je prerano: aktivan VPN transport ne govori da su zahtjevi ove aplikacije išli kroz njega, a proxy koji se stvarno primjenjuje može biti po aplikaciji ili odabran PAC datotekom umjesto da se prikaže u Postavkama. Počnite od konkretne aplikacije i profila koje ispitujete, pa pročitajte vlastiti pogled platforme na put.

Počnite od aplikacije i njenog profila

Aplikacija s radnom značkom obično radi u zasebnom profilu s vlastitom mrežnom politikom. Lični preglednik na istom telefonu nije dokaz za nju, a nije ni rezultat s kolegina uređaja s drugačijim upravljanjem. Zabilježite kojem profilu aplikacija pripada prije nego što bilo što pročitate.

U Postavkama izlistajte konfigurisane VPN unose i zabilježite kome pripada svaki. U Samsungovim verzijama natpisi menija se pomjeraju između izdanja, pa opišite unos, a ne put do njega. Sivi ili upravljani unos pripada onome ko administrira uređaj; isključivanje kao eksperiment mijenja ono što pokušavate izmjeriti i može biti protiv politike.

Pročitajte stanje koje platforma prijavljuje

Unutar postojeće aktivnosti u vašim alatima za podršku, na API 23 ili novijem, stanje mreže se može pročitati bez slanja ijednog bajta. Poziv traži uobičajenu manifest dozvolu ACCESS_NETWORK_STATE za čitanje mogućnosti.

val cm = getSystemService(android.net.ConnectivityManager::class.java) ?: return
val network = cm.activeNetwork
val caps = network?.let { cm.getNetworkCapabilities(it) }
val hasVpn = caps?.hasTransport(android.net.NetworkCapabilities.TRANSPORT_VPN)
val proxy = cm.defaultProxy

Svaka vrijednost odgovara na usko pitanje. Aktivna mreža je zadana mreža procesa koji poziva u tom trenutku. Provjera mogućnosti kaže da li je ta zadana mreža potpomognuta VPN-om. Poziv proxyja prijavljuje efektivni zadano HTTP proxy, a vraćeni objekat može opisivati ili statični proxy ili PAC skriptu.

Ako vam treba pogled po mreži umjesto zadanog, pročitajte svojstva veze iste mreže i uporedite s cm.getLinkProperties(network)?.httpProxy. Proxy koji instalira upravljanje uređajem pojavljuje se u pozivu zadanog proxyja i ne pojavljuje se u svojstvima veze, što je brz način da razlikujete proxy koji nameće politika od onog koji je dala mreža.

Držite izlaz u svom kanalu za podršku, a ne u javnom izvještoju. Imena proxy hostova, PAC adrese i interne ekstenzije otkrivaju kako vaša organizacija usmjerava promet, i nijedno od toga nije potrebno da se opiše kvar.

Tumačite svako polje usko

Nulta mreža ili nulti objekat mogućnosti znači da stanje mreže pozivatelja nije bilo dostupno ili se promijenilo tokom čitanja. To ne znači da VPN-a nema. Tretirajte to kao nepoznato i pročitajte ponovo nakon što aplikacija izađe u prvi plan, a ne kao negativan rezultat.

VPN transport je najslabiji od pozitivnih. Svaka aplikacija koja drži VpnService proizvodi ga, uključujući lokalnu aplikaciju za filtriranje koja nikad ne šalje vaš promet nigdje. Zato vrijednost true kaže da postoji zadana mreža potpomognuta VPN-om, a ne da je korišten izlaz vaše organizacije i sigurno ne da je bilo inspekcije.

Nulti zadano proxy znači da ovaj API ne prijavljuje nijedan zadano HTTP proxy za efektivnu konfiguraciju. Isključuje vrlo malo: aplikacija može nositi vlastito SOCKS podešavanje, implementirati vlastiti HTTP klijent ili biti vođena proxyjem na gatewayu za koji uređaj nikad ne sazna.

PAC je slučaj koji pobjeđuje odgovor s jednom vrijednošću. Skripta može usmjeriti jednu destinaciju kroz proxy i poslati drugu direktno, pa dva zahtjeva iste aplikacije u sekundi mogu ići različitim putevima. A aplikacija koja veže svoje sokete za odabranu mrežu ili poziva bindProcessToNetwork nije dužna slijediti zadanu vrijednost uopšte.

Šta vam ovaj snimak ne može reći

Ovo nije historija. Ovdje ništo ne bilježi kojim je putem išao zahtjev koji ne uspijeva, a uspješno čitanje nakon kvara nije dokaz o kvaru. Nije ni inventar: dobijate zadanu mrežu procesa koji poziva, a ne popis privatnih veza svake aplikacije.

Također ne govori ništo o onome što se dešava iznad soketa. TLS rukovanje koje ne uspije na upravljanom uređaju može biti problem skladišto povjerenja, nesklad pinninga ili ime koje proxy odbija, i ništo od toga se ne pojavljuje u čitanju povezanosti.

Zato su dvije polovine važne zajedno: snimak sužava gdje gledati, a aplikacijina vlastita dijagnostika kaže što je stvarno neuspjelo.

Prijavite to u obliku koji administrator može koristiti

Navedite zahvaćenu aplikaciju, profil, vremensku oznaku i tačnu fazu koja je neuspjela: razrješavanje imena, TCP veza, TLS rukovanje ili HTTP status. Dodajte vrijednosti snimka onako kako su pročitane, s nulama zapisanim kao nule, a ne kao riječ ništo. Zabilježite da li druge aplikacije u istom profilu ne uspijevaju na isti način, što razdvaja problem aplikacije od problema puta u cijelom profilu.

Zatim stanite i pustite vlasnika puta da odgovori. Ne tretirajte korporativni certifikat, proxy adresu ili VPN unos kao dozvolu da uklonite upravljanje ili zaobiđete odobrenu rutu; to pretvara slučaj podrške u incident politike.

Ugovor o zadanom proxyju je kratak i vrijedi ga jednom pročitati, jer tačno određuje koji proxy poziv prijavljuje, i svako pretjerano čitanje ovog snimka počinje pretpostavkom da prijavljuje više.

Povezani članci