Kontrollite tunnelit, käivitate systemctl status openvpn ja saate active (exited) ilma Main PID-ta ning tühja protsessiloendiga. Loomulik lugemine on, et teenus käivitus ja suri, seega avate uniti, leiate /bin/true ja järeldate, et pakett on katki. Debiani pakendis on see olek wrapper, mis töötab nii nagu kavandatud, ja tunnel elab ühes instantsi-unitis, mille see käivitab. Koondunit ei ütle teile kunagi, milline instants selle ehitas.

Mida active (exited) selles unitis tegelikult tähendab

Pakendatud unit on ühekordne: selle ExecStart on /bin/true ja RemainAfterExit=yes hoiab lõpetatud uniti active (exited) olekuna. Eemaldage see direktiiv ja sama edukas /bin/true ülesanne lõpeb olekus inactive (dead), mis on täpselt see olek, mida inimesed ootavad ja loevad vastassuunas valesti. Käsk on kohatäide ja unit annab aru tööst, mida teevad teised unitid. Selles korralduses pole miski katki ja /bin/true asendamine muudab pakendilepingut, mitte tunnelit.

Wrapper delegeerib. See käivitab instantsi-unitid, mille paketi konfiguratsioon või selle systemd-generaator pakub, mistõttu tühi protsessiloend ei tõesta tunnelist midagi. Kui ükski instants pole valitud, õnnestub wrapper ikkagi ega käivita ikkagi midagi. Olek vastab sellele, kas wrapper töötas, mitte sellele, kas tunnel on olemas.

Lugege status-väljundi kolme rida, mitte sulgudes olevat sõna. Loaded nimetab uniti faili, mille systemd luges, Active kannab viimase edukäivitusaja templit ja puuduv Main PID sobib lõpetatud ühekordsele ülesandele. Need kolm rida on ka viis, kuidas eristada seda wrapperit teenusest, mis kukkus sekund pärast käivitust kokku.

Loetlege unitid enne, kui status uuesti loete

Küsige systemdilt, mis on olemas, enne kui küsite, mis töötab. Mall võib olla paigaldatud, ilma et ükski instants oleks loodud, ja tunnelit kannab ainult loodud unit. Alustage laaditud komplektist:

systemctl list-units 'openvpn*'

See loend on see, mille systemd praegu laadis, ja see on tunnelite loendile kõige lähem asi. Paigaldatud unitifailid vastavad teisele küsimusele ja see loend näitab endiselt malli, kui midagi pole loodud:

systemctl list-unit-files 'openvpn*'

Lugege mõlemat loendit koos, sest mall teises ja instants esimeses on erinevad vastused. Olemasolev mall ja töötav instants ei ole sama fakt ning ainult teine tähendab tunnelit. Paketi paigutused erinevad ka distributsioonide ja OpenVPN-i versioonide vahel. Vanem openvpn@ mall, eraldatud client- ja server-paar ning distributsiooni wrapper võivad kõik oma pakendis õiguspärased olla.

Kohanege oma masinaga, mitte õpetusega, mille leidsite. Instantsi nimi kellegi teise väljundis võib olla office, samal ajal kui teie oma on home või work. Üle kandub meetod, mitte string.

Järgige instantsi nime failini, mida see loeb

Upstream-client-mallis on uniti töökataloog /etc/openvpn/client ja selle käsk võtab sealt %i.conf, seega openvpn-client@office loeb /etc/openvpn/client/office.conf. Kinnitage see vastendus paigaldatud unitil, selle asemel et näidet usaldada, sest teie mall võib olla vanem või distributsiooni ümberkirjutus:

systemctl cat [email protected]

Lugege drop-in-faile, mis ilmuvad selle väljundi lõpus, sest fail .d/ all võib muuta ExecStarti, töökataloogi või konfiguratsiooni teed. Profiil, mille laadisite alla nimega office.ovpn, ei ole fail, mille instants avab. See lünk on tavaline põhjus, miks viga nimetab teed, mida te kunagi ei muutnud.

Profiili sees olevad suhtelised teed on järgmine lõks. Põhifaili liigutamine, jättes ca, cert ja key viited suhtelisteks, vahetab puuduva faili vea teise puuduva faili vea vastu. Teine osutab failile, mille olemasolus olite kindel, ja seetõttu on profiili kataloog tähtsam kui faili nimi.

Käivitage see ja lugege siis selle instantsi žurnaali

Käivitage instants, mida just kontrollisite, sest koondunit logi ei sisalda tunneli vigu. Seejärel lugege selle buudi žurnaali ja otsige selles järjekorras konfiguratsiooniviga, faili juurdepääsu viga ja ühendusviga, sest igaüks neist ebaõnnestub käivituse erinevas etapis.

sudo systemctl start [email protected]
journalctl -u [email protected] -b

Käivitamine ja lubamine on eraldi otsused: start käivitab uniti kohe, enable korraldab järgmise buudi ja enable --now teeb mõlemat ühe sammuga. daemon-reload loeb uniti definitsioonid uuesti ja ei taaskäivita töötavat protsessi ega rakenda muudetud profiili. Pärast profiili muutmist taaskäivitage instants, sest just see loeb faili uuesti.

Ärge pange samale tunnelile teist haldurit

NetworkManager ja OpenVPN 3 sessioonihaldurid omavad oma ühenduse olekut ja systemd-instants ühe kõrval paneb samale tunnelile kaks omanikku. Sümptom on tunnel, mis tõuseb ja asendatakse sekundeid hiljem, või selline, mis keeldub peatatuks jäämast. Valige haldur, mille teie distributsioon töölaua jaoks dokumenteerib, ja kasutage systemd-i serveris teadlikult.

Kontrollige olemasolevat omanikku enne instantsi käivitamist. Kui töölaua applet näitab ühendust, konkureerib käivitatav instants sellega, selle asemel et seda täiendada. Keelake haldur, mida te ei kasuta, selle asemel et käitada mõlemat ja loota, et järjekord püsib. See konflikt selgitab ka žurnaale, kus tunnel luuakse ja seejärel lammutatakse protsessi poolt, mida te kunagi ei käivitanud.

Vastake algsele küsimusele instantsi nime, selle loetud faili ja ebaõnnestunud žurnaali reaga. OpenVPN-i märkmed systemd-integratsiooni kohta kirjeldavad malli paigutust ja faili vastendust, mille kaudu instantsi nimi lahendatakse.

Seotud artiklid