OpenVPN 3 Linux: nolasiet D-Bus kļūdu, pirms atgriežat iepriekšējo versiju
Pieci pakalpojumi, viena saskarne. Piesaistiet D-Bus kļūdu komponentei, kas atteicās, pārbaudiet, vai pastāv sesija, un tad labojiet šajā robežā.
OpenVPN 3 Linux kļūmes nāk kā D-Bus metodes kļūda ar nepazīstamu nosaukumu, un kārdinājums ir samazināt pakotnes versiju un cerēt. Klients nav viena programma: komandrindas saskarne runā pa kopni ar pakalpojumiem, kas pārvalda profilus, sesijas, VPN dzinēju un privileģētās tīkla izmaiņas. Lēmums, kurš no tiem pieciem pārvalda neizdevušos izsaukumu, ir lielākā daļa diagnostikas, un tas maksā vienu komandu, nevis versijas atgriešanu. Turpinājumā ir šis lēmums tādā secībā, kādā kļūmes parasti parādās.
Pieci īpašnieki aiz vienas komandas
Svarīgi ir pieci procesi, un katram ir savs kopnes nosaukums: saskarne, kas pieņem jūsu komandu, konfigurācijas pārvaldnieks, kas glabā profilus un to piekļuves politiku, sesiju pārvaldnieks, kam pieder sesijas mūžs, aizmugures sistēma, kas vada savienojumu caur OpenVPN 3 Core Engine, un tīkla konfigurācijas pakalpojums, kas instalē saskarni, maršrutus un DNS iestatījumus. Kļūda, kas nosauc konfigurācijas objektu, tāpēc nav aizmugures sistēmas kļūda, un aizmugures sistēma, kas neiedarbinās, nav autentifikācijas kļūme. Ziņojuma ievietošana vienā no šīm rindām jānotiek pirms kaut kā maiņas, jo katrs nākamais solis atkarīgs no tā, kura rinda ir patiesa. Rindas minēšana ir ceļš, kā īss labojums pārvēršas pēcpusdienā ar pakotnēm.
Pajautājiet sistēmas kopnei, kuri pakalpojumi ir klātesoši, pirms jautājat ko citu, un tad apstipriniet, ka instalētās daļas vienojas par versiju. OpenVPN 3 Linux reģistrē šos pakalpojumus kā sistēmas vienības, tāpēc kopne, kas jājautā, ir sistēmas kopne, versijas vaicājumam vajadzīga administratīvā vara, un saraksts, kas veidots ar --user, nolasa jūsu pieteikšanās sesiju, kur vienības nekad neparādās. Pakalpojumi aktivizējas pēc pieprasījuma, un daži izbeidzas, kad ir dīkstāvē, tāpēc pakalpojums, kas trūkst pirms jūsu pirmā pieprasījuma, vienkārši vēl nav ticis par neko jautāts. Trīs komandas zemāk atbild par klātbūtni, versiju un vienības stāvokli, neatverot VPN sesiju.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Ko katrs saraksts patiešām pierāda
Paša klienta skati ir lētākais pieejamais pierādījums, un katrs no tiem pierāda mazāk, nekā šķiet. Profils konfigurācijas sarakstā rāda, ka profils ir importēts, un neko par to, vai kāds drīkst ar to savienoties. Sesija sesiju sarakstā rāda, ka pastāv sesijas objekts, un neko par to, vai attālā autentifikācija ir pabeigta.
openvpn3 configs-list
openvpn3 sessions-listObjektu ceļi šajos izvados apzīmē pārvaldītus objektus uz kopnes, nevis failus, tāpēc tos nevar rediģēt, un iepriekš pierakstīts ceļš noveco tajā mirklī, kad šī sesija atvienojas. Viena atkārtota izmantošana no jūsu piezīmēm rada "no such object" kļūdas, kurām nav nekā kopīga ar VPN. Zemāk esošā posmu tabula atdala to, ko katrs savienojuma solis izveido, no tā, ko tas atstāj atvērtu, un tieši uz šīs atšķirības balstās versijas atgriešanas lēmums. Izlasiet rindu, kas atbilst jūsu pierādījumam, un pēc tam vēlreiz izlasiet kļūdas tekstu.
| Stage | What exists | What proves it | What it does not prove |
|---|---|---|---|
| Profile imported | A configuration object held by the configuration manager | The profile is listed by the client | That the profile owner permits a connection |
| Session requested | A session object held by the session manager | The session appears in the session list | That the remote side accepted the credentials |
| Connect dispatched | An asynchronous attempt on the VPN backend | Status changes arrive for that session | That an interface was configured |
| Tunnel configured | An interface, routes and DNS settings | The network service reports success and routes appear | That traffic reaches the peer |
Savienojuma izsaukums atgriežas pirms tam, kad tunelis pastāv
Savienojuma izsaukums jums iedod sesiju, ko novērot, un atgriežas, tāpēc šķietami veiksmīgs izsaukums, kam seko klusums, ir normāls starpstāvoklis, nevis pretruna. Saskarnei joprojām jāseko stāvokļa izmaiņām un jāatbild uz katru mijiedarbības pieprasījumu. Profils, kuram vajag akreditācijas datus un kas nesaņem atbildi, gaida stāvoklī, kas izskatās tieši kā iekārta aizmugures sistēma. Šis gaidīšanas stāvoklis ir pelnījis atpazīšanu, jo tas sūta cilvēkus pie nepareizā komponenta.
Kamēr mēģinājums darbojas, sekojiet sesiju sarakstam un pašas saskarnes žurnālam šim profilam. Sesija, kas nekad neatstāj savu sākotnējo stāvokli, nosauc apstājušos komponentu, un žurnāls to parasti nosauc jau pirmajās rindās. Turiet profila nosaukumu pa rokai, jo žurnāla komanda ņem profilu, nevis sesijas ceļu, kas ir vēl viens iemesls lasīt sarakstu no jauna, nevis izmantot ceļu atkārtoti.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6Viena komponenta žurnāla lasīšana, neatverot sesiju
Kad saskarne neziņo neko noderīgu, dodieties pie komponenta, kas reģistrēja kļūmi, nevis sāciet citu savienojumu. Ar konfigurētu systemd-journald reģistrētāju administratora ierobežotais žurnāla skats nolasa viena komponenta notikumus, nepieskaroties kopnes politikai un neatverot sesiju, un tas ir svarīgi, jo diagnostika, kas maina mērāmo sistēmu, pierāda ļoti maz. Filtrējiet pēc vienības, nevis pēc syslog atzīmes: atsevišķas pakalpojuma vienības negarantē kopīgu identifikatoru, tāpēc vaicājums pēc atzīmes var atgriezt tukšu lapu, kamēr pati vienība reģistrēja kļūmi.
Pierakstiet četrus laukus, pirms lūdzat kādam palīdzību: pilnu kļūdas nosaukumu, iesaistīto pakalpojumu un objektu, laika zīmogu un instalēto pakotņu versijas. Tas ir tas, kas vajadzīgs uzturētājam, un neviens no tiem neprasa ielīmēt profilu vai akreditācijas datus pieteikumā. Kopnes piekļuves politikas paplašināšana, lai kļūdu apklusinātu, nav diagnostika, tā izdzēš robežu, kas jūsu vietā nosauca komponentu. Profilu privātais saturs paliek ārpus kopīgotajiem ziņojumiem tā paša iemesla dēļ kā akreditācijas dati.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>Robežas, kas atteicās, labošana
Katrai kartes rindai ir savs labojums, un rindas viena otru neaizstāj. Profilā liegta darbība ir jautājums par politiku un īpašumtiesībām, savukārt aizmugures sistēma, kas neaktivizējas, ir jautājums par pakalpojumiem un iepakošanu. Serveris, kas noraida autentifikāciju, nav ne viens, ne otrs, tāpēc atkārtotas paroles maiņas nevar salabot vietēju aktivizācijas problēmu. Nepareiza labojuma izvēle ir ceļš, kā politikas problēma pārvēršas pārinstalēšanā.
Pēc pakotņu maiņas pārbaudiet saskanīgu un atbalstītu instalāciju, nevis kopējiet vecu bināro failu tā vietā. Kontrolēta versijas atgriešana ir leģitīma atbilde uz apstiprinātu regresiju, ar nosacījumu, ka pakotnes paliek saderīgas un pastāv ceļš atpakaļ uz atbalstītu uzturēšanu. Izveidojiet šo ceļu pirms tam, kad pakalpojums pārstāj startēt, nevis pēc tam.
Cita platforma var kopīgot to pašu VPN pamatbibliotēku, bet ne Linux kopnes pakalpojumus, tāpēc līdzīgi izskatoša kļūme Windows vidē neko nepasaka par šo. D-Bus pārskats dokumentē konfigurācijām un sesijām atklātos objektu ceļus, un tā ir tā arhitektūras daļa, uz kuras balstās šī diagnostika. Izlasiet to vienreiz, un nākamā kļūda atnāks ar komponentu, kas jau tam pievienots.