Zaženete OpenVPN iz lupine s konfiguracijsko datoteko, in terminal stoji brez kakršnega koli izhoda. Nobenega pasice, nobene napake, nobenega poziva. Nagon pravi, da je zagon spodletel, zato zaženete še eno kopijo, nato še eno, in stroj konča z več napol konfiguriranimi primerki. Pred vsem tem v profilu preverite direktivo, ki je dnevnik že preusmerila kam drugam. Tišina je lastnost konzole, ne procesa.

Tišina ima dve zelo različni razlagi

Prva je, da proces deluje pravilno in piše v datoteko, ki je ne spremljate. Druga je, da se je takoj končal z napako, zapisano v isti datoteki.

Oba pustita prazen terminal, in eno vprašanje ju loči: ali proces zdaj obstaja in kaj je v datoteki, v katero mu je bilo ukazano pisati. Na to odgovorite, preden se znova dotaknete konfiguracije. Ponovni zagon zaradi izhoda je način, kako se dva primerka začneta prepirati za eno tunelsko napravo in ista vrata, kar ustvarja napake, ki nimajo nič skupnega s prvotno težavo.

Poiščite direktivo, nato poiščite proces.

ps -o pid,args= -C openvpn
grep -nE '^\s*(log|log-append|cd|daemon|verb)\b' /etc/openvpn/server/server.conf

Poiščite cilj, ki ga uporablja delujoči proces

Berite profil, s katerim je bil proces dejansko zagnan, ne tistega, ki ste ga urejali. Primerek, ki ga upravlja storitev, običajno naloži drugo pot in teče v drugi delovni mapi, zato se relativno ime datoteke razreši nekje, kjer tega niste pričakovali.

Izrecna cd direktiva to razliko naredi ostrejšo, ker se relativna pot premakne skupaj s spremembo mape. Če ste to konfiguracijo podedovali, lahko datoteka leži na mestu, kjer je zdaj nihče ne bi iskal.

Primerjajte čas spremembe datoteke s trenutkom, ko ste jo zagnali. Dnevnik prejšnjega tedna je dokaz o prejšnjem tednu. Nato preberite zadnje vrstice spremenjene datoteke in tisto, kar je tam, obravnavajte kot začetno sporočilo, ki vam je manjkalo.

log proti log-append: dokaz in brisanje

log-append doda tistemu, kar je že v datoteki. log odpre datoteko za pisanje in jo skrajša, zato lahko preklapljanje med njima izbriše izvajanje, ki ste ga nameravali prebrati.

Če je kdo med razhroščevanjem spremenil direktivo, je prejšnji dokaz že izginil in velikost datoteke bo videti sumljivo majhna. To je vredno vedeti, preden primerjate dva izvajanja in sklepate, da se je nekaj spremenilo. Dnevnik izbrišite namerno ali ga obdržite, a vedite, katero od tega ste storili. Dokaz, ki ste ga odstranili namerno, je lažje razumeti kot tistega, ki ste ga izgubili po nesreči.

Nobena možnost ne ustvari manjkajočih nadrejenih map in nobena ne omogoči dostopa prek dovoljenj datotečnega sistema ali peskovnika storitve. Pot, ki je v konfiguraciji videti pravilna, lahko še vedno ni zapisljiva za račun, pod katerim teče demon, in takrat lahko demon spodleti, preden karkoli sporoči. Preverite, ali mapa obstaja in kdo je njen lastnik, preden domnevate, da je težava v imenu datoteke.

Ko ovoj storitve ujame izhod

Pod systemd gredo standardni izhod in napake v dnevnik, razen če ima izrecna datotečna direktiva prednost, in ovoj ponudnika jih lahko ujame povsem drugje.

Zato se isti profil obnaša drugače iz lupine in iz enote. Okolje enote, njena delovna mapa in standardni tokovi se vsi razlikujejo od vaše interaktivne lupine. Relativna pot se lahko razreši v enem kontekstu in v drugem ne pristane nikjer. Ko se ta dva ne strinjata, berite definicijo enote, ne profila.

Primerjajte dva načina zagona, namesto da sklepate, da je eden od njiju pokvarjen. Preberite ukazno vrstico enote in njeno okolje, nato preberite dnevnik za isto časovno okno. Če ovoj preusmeri izhod v svojo datoteko, je ta datoteka zdaj vaš dnevnik, in direktive OpenVPN niso pomembne za to, kam so sporočila šla.

Podrobnost povečajte šele, ko jo lahko preberete

Povečevanje podrobnosti pred iskanjem cilja le ustvari več besedila na mestu, ki ga ne gledate.

Ko veste, kam izhod pristane, zmerna raven pokaže, da se profil razčlenjuje in da se povezava poskuša. Dve ali tri sta dovolj za težavo z zagonom. Višje ravni si zaslužijo svoje mesto, ko je okvara podrobnost pogajanj, in tudi hitro povečajo datoteko.

Nato preberite dejansko napako. Tih terminal ne dokaže ničesar o tem, ali se je tunel dvignil, in okvara, zapisana v datoteki, je tista, ki se jo splača popraviti.

Sorodni članki