Automatiseering, mis ühendus kuude jooksul usaldusväärselt, lakkab pärast kliendi uuendust töötamast, samal ajal kui sama profiil ühendub käsitsi endiselt. See muster viitab juhtimisleppele, mitte VPN-serverile. Keegi muutis, millist toimingut rakendus aktsepteerib või millist identifikaatorit see ootab, ja ülesanne saadab endiselt vana. Uuesti sidumise taastamine võtab vähem aega kui serveri uuesti kontrollimine.

Lepe kuulub ühele rakendusele ja ühele versioonivahemikule

OpenVPN Connect ja OpenVPN for Android on erinevad rakendused ning intent, mis nimetab ühte paketti, ei tee teises midagi. Enne ülesande puudutamist kinnitage, milline klient on paigaldatud ja milline versioon tekitas käitumise, millega võrdlete. Androidi 3.3.2 või uuema Connecti puhul ootab dokumenteeritud Taskeri integratsioon profiili ID-d. Vanemad juhised, mis panevad kuvatava nime ette AS või PC, kirjeldavad varasemat lepet, ja nende kopeerimine praegusesse ülesandesse on tavaline põhjus, miks midagi ei juhtu.

See versioonipiir selgitab enamikku teateid, et varem see töötas. Rakendus ei rikkunud funktsiooni; see muutis seda, mida funktsioon aktsepteerib. Käsitlege versioonivahemikku leppe osana, mille vastu kirjutate.

Kust identifikaator pärineb

Avage soovitud profiil Connectis ja kopeerige selle profiili ID profiili enda üksikasjadest. Kasutage seda väärtust, mitte nime, mille tunnete loendist, sest nimi on silt ja identifikaator on see, millega rakendus võrdleb. Taskeri Send Intent toimingu ühendusväljad näevad välja nagu allolev plokk, kusjuures asendatud on ainult identifikaator. Hoidke ka isikliku või tööprofiili rakenduse eksemplar järjekindel.

Action: net.openvpn.openvpn.CONNECT
Extra: net.openvpn.openvpn.AUTOSTART_PROFILE_ID:'PROFILE_ID'
Extra: net.openvpn.openvpn.AUTOCONNECT:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity

Tööprofiilis olev koopia, millel on sama paketinimi ja teine salvestatud profiil, võtab intenti vastu ega leia ühtegi sobivat profiili, mis näeb välja nagu katkine ülesanne, mitte nagu ulatuse viga. Kui profiil imporditakse uuesti või asendatakse, käsitlege identifikaatorit kahtlasena ja kontrollige seda uuesti. Uuesti importimine tekitab sageli uue profiilikande ka siis, kui kuvatav nimi jääb muutumatuks. Kontrollige identifikaatorit enne, kui muudate midagi muud.

Jätke seostamata väljad tühjaks, nagu dokumenteeritud. Kategooria, MIME-tüübi ja andmete väljad, mida juhend ei küsi, võivad muuta seda, kuidas Android intenti lahendab, ja teisiti lahendatav intent võib käivitada rakenduse ilma teie profiili käivitamata.

Mida toiming teeb ja mida see teile jätab

Ühenduse intenti saatmine palub rakendusel profiili käivitada. See ei möödu autoriseerimisest, mida see profiil nõuab. Connect võib endiselt kuvada küsimuse, mistõttu dokumenteeritud autonoomne juhtum eeldab, et täiendavat autoriseerimist ega salvestatud ühendusmandaate ei ole. Kiusatus on see piir eemaldada, põimides paroole või privaatvõtme saladusi jagatud Taskeri eksporti.

Ärge tehke seda. Ülesande eksport on tekstifail, mille inimesed kopeerivad vestluslõimedesse, ja sinna pandud saladused paljastuvad hetkel, mil seda jagatakse. Kasutage rakenduse enda salvestatud ühendusmandaate, kui profiil neid vajab, ja laske MFA-küsimustel jääda küsimusteks. Kõik, mis väldib küsimust vastuse salvestamisega, on saladuse ümber paigutanud, mitte probleemi lahendanud.

Ühenduse katkestamise poolel on oma dokumenteeritud toiming ja see ei ole kliendi vastu suunatud trikk:

Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity

Tahtlikult olematu profiiliga ühenduse loomine katkestamise esilekutsumiseks on seda tüüpi möödaminek, mis ilmub vanades lõimedes ja ebaõnnestub pärast uuendust vaikselt. Kasutage selgesõnalist toimingut.

Kontrollige olekut enne, kui järgmine samm käivitub

Edukas intenti käivitamine tõestab, et taotlus toimetati kohale, mitte et tunnel on olemas. Kui ülesanne avab seejärel sisemise rakenduse,vajab see samm valmiuse tingimust piiratud ajapiiriga. Vahetu toiming pärast saatmist tabab lõpuks küsimust.

$ adb shell cmd package resolve-activity --brief net.openvpn.openvpn
net.openvpn.openvpn/net.openvpn.unified.MainActivity
$ adb shell dumpsys activity activities | grep -i openvpn

Resolve-päring kinnitab, et pakett ja tegevus, millele sihite, on selles seadmes olemas, mis välistab klassivälja kirjavea. Tegevuse dump näitab, mis on pärast teie ülesande käivitumist tegelikult esiplaanil, ja see on odavaim viis näha, kas rakendus avas küsimuse, mitte ei ühendunud. Käivitage mõlemad ebaõnnestunud ülesande järel, selle asemel et arvata, milline väli on vale. Klassinime erinevus tekitab kohese vea, samas kui puuduv profiil ei tekita üldse nähtavat viga.

Otsustage ühenduse katkestamise omand enne, kui ülesande välja saadate. Otsetee, mis rebib maha tunneli, millest sõltub teine tööülesanne, tekitab tugipileti, mis ei sarnane üldse oma põhjusega. Kahe automatiseeringu hoidmine, mis mõlemad juhivad sama klienti, tekitab võidujooksu, mida te logidest siluda ei saa, seega kustutage vananenud toiming, kui uus töötab.

Seotud artiklid