Tenesta feilar, loggane nemner ein spawn og ei mappe, og det første instinktet er å sjekke VPN-konfigurasjonen. Ingenting i den fila er lese enno. systemd feila medan han førebudde prosessen, før den køyrbare fila starta, så ingen parser, ingen sertifikat og ingen ekstern vert er konsultert. Å lese statuskoden som ei utsegn om systemd i staden for om OpenVPN er det som gjer dette til ei kort undersøking.

Les statuskoden før applikasjonen

Den numeriske koden etter tenestenamnet namngjev trinnet som feila. Ein mappe-feil blir rapportert som CHDIR-status, medan ei køyrbar fil som ikkje kunne køyrast er ein heilt annan kode. Dei to ser like ut i ei samandragslinje og har ingenting til felles i årsakene sine.

Den skilnaden har noko å seie fordi rettingane er i ulike filer. Ein CHDIR-feil handlar om ein stig og korleis tenesta ser han. Ein exec-feil handlar om binæren, tolken hans eller ein urelatert mount. Å endre VPN-remote, sifferlista eller sertifikatstigen kan ikkje løyse nokon av dei.

Stadfest at feilen er ved oppstart og ikkje etter ei vellukka køyring. Viss tenesta fungerte i går og no feilar på same trinn, er noko endra med mappa, løyva hennar eller sjølve uniten, og den endringa er beviset du skal leite etter.

Spør uniten kvar han vil vere

Les den effektive uniten i staden for fila du trur er installert, fordi drop-ins kan overstyre arbeidsmappa utan at du nokon gong redigerer hovuduniten. Show-utdataa svarar direkte på spørsmålet:

systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30

For upstream-tenestemalen er arbeidsmappa tenestekonfigurasjonsmappa, og instansnamnet vel profilen inni henne. Ein instans som heiter branch ventar derfor si eiga fil i same mappa, og ein profil plassert ein annan stad oppfyller slett ikkje kravet til arbeidsmappa.

Samanlikn det uniten ber om med det som finst. Ein stig som pleidde å finnast, ei symbolsk lenkje som no peikar ein annan stad, eller eit instansnamn som ikkje lenger svarar til ei mappe, er alle vanlege endringar som gir nøyaktig denne feilen.

Sjekk stigen slik tenesta ser han

Skalet ditt og tenesta deler ikkje same vising av filsystemet. Ei konfigurert rotmappe eller root image endrar kva ein absolutt stig tyder inne i uniten, og ein stig som openbert finst på verten kan mangle i det namnerommet. Les innstillingane til uniten før du stolar på ein manuell test.

Løyve forsterkar problemet. Tenesta køyrer som ein bestemd brukar, og den brukaren må kunne gå gjennom kvar overordna mappe for å nå målet, ikkje berre lese sjølve målet. Ei mappe som er lesbar for root og ikkje gjennomgåeleg for tenestebrukaren gir ein feil som ser ut som ein manglande stig.

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

Herdingsinnstillingar er også ein del av biletet. Ein unit som skjuler heimemapper eller gjer ein del av filsystemet skriveverna, gjer nøyaktig det han er konfigurert til, og arbeidsmappa må ligge ein stad der sandkassa framleis eksponerer henne.

Fiks eigaren, vent så på ein annan feil

Korriger oppsettet eller uniten gjennom den som eig den konfigurasjonen. Å flytte ein profil inn i den venta mappa er ei legitim retting når oppsettet er feil, men det forklarer ikkje ei mappe som ikkje kan betrast, så ikkje behandla det som det generelle svaret.

Motstå snarvegen med å utvide løyva på konfigurasjonstreet eller fjerne sandkassa. Begge får symptomet til å forsvinne samtidig som dei fjernar vernet som vart lagt der med vilje, og neste feil blir vanskelegare å tolke.

Start instansen på nytt og les neste hending i staden for å anta suksess. Den sannsynlege neste feilen er at OpenVPN ikkje kan opne konfigurasjonsfila si, noko som er framgang: arbeidsmappa vart betra og parsaren køyrer no. Følg den faktiske filkartlegginga til uniten derifrå i staden for å gå tilbake til nettverksfeilsøking.

systemd-referansen for køyring definerer korleis arbeidsmappa blir tolka saman med rotmapper og sandkasse. Mønsteret å hugse er enkelt: kvar statuskode namngjev eit anna trinn, og berre applikasjonens eigne feil skildrar applikasjonen.

Relaterte artiklar