VPN įstrigęs ties „Connecting“ lėktuvo režimu: raskite ryšį aukštyn
Klientas, kuris lėktuvo režimu lieka ties „Connecting“, gali tiesiog neturėti ryšio aukštyn. Atskirkite radijo būseną, prisijungimą, portalo prisijungimą ir blokavimo politiką.
Telefone rodoma lėktuvo piktograma, VPN klientas jau dvi minutes yra ties „Connecting“, o profilis teisingas. Prieš valandą jis veikė tame pačiame pastate. Niekas nesugedę: VPN yra ryšys, kurį perduoda kitas tinklas, o lėktuvo režimas ką tik pašalino tinklą, kuris jį perdavė. Klientas vis bando iš naujo, nes be ryšio aukštyn jis taip ir elgiasi.
Klaidina tai, kad lėktuvo simbolis nepasako, ar Wi-Fi pasiekiamas, o „Connecting“ nepasako, ar klientas autentifikuojasi, ar tik laukia. Atskirkite šiuos du rodmenis, ir diagnostika užtruks minutę.
Lėktuvo simbolis nėra radijo ataskaita
Palaikomuose Android įrenginiuose Wi-Fi ir Bluetooth gali likti įjungti lėktuvo režimu, o įrenginys prisimena paskutinį jūsų pasirinkimą. „Google“ „Pixel“ lėktuvo režimo instrukcija aprašo būtent tokį elgesį. Taigi piktograma gali reikšti tik tai, kad korinis ryšys išjungtas, ir nieko daugiau.
Tikrinkite tikrąją būseną, o ne glifą. adb shell settings get global airplane_mode_on grąžina 0 arba 1 pačiam režimui, o adb shell dumpsys connectivity išvardija tinklus, kuriuos įrenginys šiuo metu turi, su jų patvirtinimo būsena. Šie du išvedžiai kartu atsako į klausimą, į kurį piktograma neatsako.
Jei Wi-Fi išjungtas arba įjungtas, bet niekuo neprisijungęs, kelio į VPN galinį tašką nėra ir joks prisijungimų skaičius jo nesukurs. Šį atvejį verta atmesti pirmiausia, nes tai vienintelis atvejis, kai teisingas sprendimas yra už VPN programėlės ribų.
Ką iš tikrųjų reiškia „Connecting“
Klientas gali laikyti išsaugotą profilį, rodyti jo pavadinimą ir sukti indikatorių nieko nepasiveikinęs. Konfigūracija yra vietinė. Norint sukurti tunelį reikia pasiekiamo serverio, užbaigto rankos paspaudimo ir sąsajos maršrutizavimui. Tik paskutinei daliai reikia veikiančio tinklo, todėl pirmosios dvi gali atrodyti sėkmingos, kai radijas išjungtas.
Taigi indikatorius atitinka bent tris skirtingas situacijas: visai nėra ryšio aukštyn, ryšys aukštyn nepasiekia galinio taško, ir ryšys aukštyn jį pasiekia, bet autentifikacija nepavyksta. Ekrane jie atrodo vienodai, o žurnale – visiškai skirtingai. Todėl pirmasis naudingas artefaktas visais šiais atvejais yra žurnalas, o ne dar vienas bandymas.
Pačios Android VPN dokumentacijoje brėžiama ta pati riba tarp ryšio užmezgimo ir atskirų visada įjungto bei blokavimo politikų. Būtent šis atskyrimas yra priežastis, kodėl telefonas gali atrodyti apsaugotas būdamas neprisijungęs ir vis tiek neturėti tunelio.
Keturios būsenos, kurias verta išskirti
Toliau pateiktos keturios būsenos yra tos, kurias verta įvardyti, nes ekranas jas rodo vienodai.
| State | What you will see | What to do |
|---|---|---|
| Airplane mode, Wi-Fi off | No networks in dumpsys, VPN retries forever | Turn Wi-Fi on, or accept that the tunnel cannot exist |
| Wi-Fi on, not associated | Interface exists, no default network | Join the access point |
| Associated, not validated | Network listed, captive-portal flag set | Complete the portal sign-in, then reconnect |
| Validated, tunnel down | Internet works, VPN fails or blocks | Debug the tunnel, not the radio |
Trečioji eilutė pagauna daugumą žmonių viešbučiuose ir oro uostuose. Prisijungimas dar nėra įleidimas: portalas, kuris nepraleido telefono, mielai priims Wi-Fi slaptažodį ir tada atsisakys praleisti srautą į VPN galinį tašką. Pirmiausia prisijungti per naršyklę, kol tunelis išjungtas, paprastai yra vienintelis kelias.
Kodėl blokavimas pablogina vaizdą
Jei visada įjungtas VPN ir blokavimas be VPN yra abu aktyvūs, kiekviena apimta programėlė blokuojama, kai tik tunelis nepakeltas. Tai funkcija, kuri veikia, o ne antra gedimas. Simptomas keičiasi nuo vienos programėlės nesėkmės iki visko nesėkmės, o tai skaitoma kaip daug didesnė problema.
Tai paaiškina ir seką, kurią žmonės perskaito neteisingai: lėktuvo režimas įjungtas, ryšio aukštyn nėra, programėlės blokuojamos, VPN sako connecting. Blokavimas buvo politika, atliekanti savo darbą. Politikos išjungimas norint patikrinti ryšį aukštyn pašalina apsaugą, kurios tikriausiai norėjote, ir nieko neišmoko.
Vietoj to patikrinkite apimtį. Kurios programėlės apimtos, kurios išskirtos ir ar profilis skirtas kiekvienam naudotojui, ar visam įrenginiui. Užduotis, kuri paleidžia VPN programėlę vos pasirodžius Wi-Fi, yra paleidiklis, o ne garantija, kad prieš ją paleidžiant neišėjo nė vienas paketas.
Diagnostikos tvarka, kuri baigia spėliones
Dirbkite iš apačios į viršų. Patvirtinkite režimą, patvirtinkite, kad tinklas egzistuoja, kad jis patvirtintas, kad jis pasiekia ką nors už vietinio potinklio, ir tik tada žiūrėkite į klientą. adb shell ping -c 3 1.1.1.1 yra grubus bandymas, bet jis atskiria trūkstamą kelią nuo kelio, kuris egzistuoja, kol tunelis nepatenkintas.
Jei ping nepavyksta, kai tinklas įrašytas, problema yra aukščiau VPN ir jokia kliento nuostata jos nepataisys. Jei ping pavyksta, o tunelis vis tiek nesusikuria, užfiksuokite kliento žurnalą tuo metu: klaida atskirs laiko limitą nuo autentifikacijos atmetimo, o šie du neturi nieko bendra.
Užbaikite atkurdami numatytą būseną: Wi-Fi leidžiamas lėktuvo režimu, jei tai jūsų įprasta sąranka, portalas užbaigtas, o blokavimo politika vėl įjungta. Tada vieną kartą prisijunkite iš naujo ir įsitikinkite, kad tunelis pakyla pats, nes konfigūracija, kuri veikia tik po rankinių bandymų, vėl žlugs kitą kartą paleidus.