OpenVPN käynnistyi mutta ei tulostanut mitään: tarkista ensin log-append
Hiljaisuus käsin käynnistettäessä ei ole vika. Lue log ja log-append ladatusta profiilista ja sovita sitten tiedosto ja sen aikaleimat prosessiin.
Käynnistät OpenVPN-ohjelman komentotulkista asetustiedoston kanssa, ja pääte jää täysin ilman tulostetta. Ei banneria, ei virhettä, ei kehotetta. Vaisto sanoo, että käynnistys epäonnistui, joten käynnistät toisen kopion, sitten vielä yhden, ja koneeseen jää useita puoliksi määritettyjä instansseja. Ennen kaikkea tätä tarkista profiilista direktiivi, joka on jo ohjannut lokin muualle. Hiljaisuus on konsolin ominaisuus, ei prosessin.
Hiljaisuudella on kaksi hyvin erilaista selitystä
Ensimmäinen on, että prosessi toimii hyvin ja kirjoittaa tiedostoon, jota et seuraa. Toinen on, että se lopetti heti virheeseen, joka on kirjattu samaan tiedostoon.
Molemmat jättävät tyhjän päätteen, ja yksi kysymys erottaa ne: onko prosessia nyt, ja mitä on tiedostossa, johon sen käskettiin kirjoittaa. Vastaa siihen ennen kuin kosket asetukseen uudelleen. Uudelleenkäynnistys tulosteen saamiseksi on tapa, jolla kaksi instanssia päätyy taistelemaan yhdestä tunnelilaitteesta ja samasta portista, mikä tuottaa virheitä, joilla ei ole mitään tekemistä alkuperäisen ongelman kanssa.
Etsi direktiivi ja etsi sitten prosessi.
ps -o pid,args= -C openvpn
grep -nE '^\s*(log|log-append|cd|daemon|verb)\b' /etc/openvpn/server/server.conf
Etsi kohde, jota käynnissä oleva prosessi käyttää
Lue profiili, jolla prosessi todella käynnistettiin, älä sitä, jota muokkasit. Palvelun hallitsema instanssi lataa yleensä eri polun ja toimii eri työhakemistossa, joten suhteellinen tiedostonimi ratkeaa jossain, jota et odottanut.
Selkeä cd-direktiivi terävöittää eroa, koska suhteellinen polku liikkuu hakemiston vaihtuessa. Jos olet perinyt tämän asetusten, tiedosto voi olla paikassa, josta kukaan ei sitä nyt etsisi.
Vertaa tiedoston muutosaikaa hetkeen, jolloin käynnistit sen. Viime viikon loki on todiste viime viikosta. Lue sitten muuttuneen tiedoston viimeiset rivit ja pidä sitä, mitä siellä on, käynnistysviestinä, joka sinulta jäi puuttumaan.
log vs log-append: todiste ja poisto
log-append lisää siihen, mitä tiedostossa jo on. log avaa tiedoston kirjoittamista varten ja katkaisee sen, joten näiden välillä vaihtaminen voi poistaa ajon, jota olit juuri lukemassa.
Jos joku muutti direktiiviä vianetsinnän aikana, aiempi todiste on jo poissa ja tiedoston koko näyttää epäilyttävän pieneltä. Se kannattaa tietää ennen kuin vertaat kahta ajoa ja päättelet, että jotain muuttui. Poista loki tarkoituksella tai pidä se, mutta tiedä kumpaa teit. Tarkoituksella poistamasi todiste on helpompi perustella kuin vahingossa kadonnut todiste.
Kumpikaan vaihtoehto ei luo puuttuvia ylähakemistoja eikä anna pääsyä tiedostojärjestelmän oikeuksien tai palvelun hiekkalaatikon kautta. Asetuksissa oikealta näyttävä polku voi silti olla kirjoittamaton tilille, jonka alla daemon toimii, ja silloin daemon voi epäonnistua ennen kuin se ehtii ilmoittaa mitään. Tarkista, onko hakemisto olemassa ja kenen se on, ennen kuin oletat tiedostonimen olevan ongelma.
Kun palvelun kääre nappaa tulosteen
systemd:n alla vakiotuloste ja -virhe menevät journaliin, ellei selkeä tiedostodirektiivi ole etusijalla, ja toimittajan kääre voi napata ne aivan muualta.
Siksi sama profiili käyttäytyy eri tavalla komentotulkista ja unitista. Unitin ympäristö, työhakemisto ja vakiovirrat eroavat interaktiivisesta komentotulkistasi. Suhteellinen polku voi ratketa yhdessä asiayhteydessä eikä päätyä mihinkään toisessa. Lue unitin määritelmä, kun ne kaksi ovat eri mieltä, älä profiilia.
Vertaa kahta käynnistysjärjestelyä sen sijaan, että päättelet toisen olevan rikki. Lue unitin komentorivi ja sen ympäristö ja lue sitten journal samalta aikaväliltä. Jos kääre ohjaa tulosteen omaan tiedostoonsa, se tiedosto on nyt lokisi, eivätkä OpenVPN:n direktiivit vaikuta siihen, minne viestit menivät.
Nosta yksityiskohtaisuutta vasta, kun pystyt lukemaan sitä
Yksityiskohtaisuuden lisääminen ennen kohteen löytämistä tuottaa vain lisää tekstiä paikkaan, jota et katsele.
Kun tiedät, mihin tuloste päätyy, kohtuullinen taso näyttää, että profiilia jäsennetään ja yhteyttä yritetään. Kaksi tai kolme riittää käynnistysongelmaan. Korkeammat tasot ansaitsevat paikkansa, kun vika on neuvottelun yksityiskohta, ja ne myös kasvattavat tiedostoa nopeasti.
Lue sitten varsinainen virhe. Hiljainen pääte ei todista mitään siitä, nousiko tunneli, ja tiedostoon kirjattu vika on se, joka kannattaa korjata.