OpenVPN 3 Linux: lue D-Bus-virhe ennen kuin peruutat
Viisi palvelua, yksi käyttöliittymä. Yhdistä D-Bus-virhe komponenttiin, joka kieltäytyi, tarkista onko istunto olemassa ja korjaa sitten sillä rajalla.
OpenVPN 3 Linuxin viat saapuvat D-Bus-metodivirheenä, johon on liitetty vieras nimi, ja houkutus on laskea paketti alas ja toivoa. Asiakas ei ole yksi ohjelma: komentorivin käyttöliittymä puhuu väylän kautta palveluille, jotka omistavat profiilit, istunnot, VPN-moottorin ja etuoikeutetut verkkomuutokset. Sen päättäminen, mikä näistä viidestä omistaa epäonnistuvan kutsun, on suurin osa diagnoosista, ja se maksaa yhden komennon eikä peruutuksen. Seuraava on tuo päätös siinä järjestyksessä, jossa viat yleensä ilmestyvät.
Viisi omistajaa yhden komennon takana
Viisi prosessia on merkityksellisiä, ja jokaisella on oma väylänimensä: käyttöliittymä, joka ottaa komentosi vastaan, asetustenhallinta, joka tallentaa profiilit ja niiden käyttöoikeuskäytännön, istuntojen hallinta, joka omistaa istunnon eliniän, taustaohjelma, joka ajaa yhteyden OpenVPN 3 Core Enginen kautta, ja verkkokokoonpanon palvelu, joka asentaa liitännän, reitit ja DNS-asetukset. Asetusten objektin nimeävä virhe ei siis ole taustaohjelman virhe, eikä taustaohjelma, joka ei käynnisty, ole todennuksen epäonnistuminen. Viestin sijoittaminen johonkin noista riveistä on tehtävä ennen kuin mitään muutetaan, koska jokainen myöhempi vaihe riippuu siitä, mikä rivi on tosi. Rivin arvaaminen on se tapa, jolla lyhyestä korjauksesta tulee pakettityön iltapäivä.
Kysy järjestelmäväylältä, mitkä palvelut ovat läsnä, ennen kuin kysyt mitään muuta, ja vahvista sitten, että asennetut osat ovat samaa versiota. OpenVPN 3 Linux rekisteröi nuo palvelut järjestelmäyksiköiksi, joten kysyttävä väylä on järjestelmäväylä, versiokysely vaatii hallinnollisen valtuuden ja komennolla --user tehty listaus lukee kirjautumisistuntoasi, jossa yksiköt eivät koskaan esiinny. Palvelut aktivoituvat pyynnöstä ja jotkut lopettavat ollessaan käyttämättöminä, joten ennen ensimmäistä pyyntöäsi puuttuvaa palvelua ei yksinkertaisesti ole vielä kysytty mistään. Alla olevat kolme komentoa vastaavat läsnäolosta, versiosta ja yksikön tilasta avaamatta VPN-istuntoa.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Mikä kukin lista todella todistaa
Asiakkaan omat näkymät ovat halvin saatavilla oleva todiste, ja jokainen niistä todistaa vähemmän kuin näyttää. Asetuslistan profiili osoittaa, että profiili on tuotu, eikä mitään siitä, saako joku muodostaa siihen yhteyden. Istuntolistan istunto osoittaa, että istunto-objekti on olemassa, eikä mitään siitä, päättyikö etätodennus.
openvpn3 configs-list
openvpn3 sessions-listNoiden tulosteiden objektipolut yksilöivät väylällä hallinnoituja objekteja eivätkä tiedostoja, joten niitä ei voi muokata, ja aiemmin kirjattu polku vanhenee hetkellä, jolloin kyseinen istunto katkeaa. Yhden käyttäminen uudelleen muistiinpanoistasi tuottaa "no such object" -virheitä, joilla ei ole mitään tekemistä VPN:n kanssa. Alla oleva vaihetaulukko erottaa sen, mitä yhteyden kukin vaihe rakentaa, siitä, mitä se jättää avoimeksi, ja juuri siitä erotuksesta peruutuspäätös riippuu. Lue todistettasi vastaava rivi ja lue sitten virheen teksti uudelleen.
| 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 |
Yhteyskutsu palaa ennen kuin tunneli on olemassa
Yhteyskutsu antaa sinulle seurattavan istunnon ja palaa, minkä vuoksi näennäisesti onnistunut kutsu, jota seuraa hiljaisuus, on normaali välitila eikä ristiriita. Käyttöliittymän on yhä seurattava tilamuutoksia ja vastattava jokaiseen vuorovaikutuspyyntöön. Profiili, joka tarvitsee tunnisteen eikä saa vastausta, odottaa tilassa, joka näyttää täsmälleen jumiutuneelta taustaohjelmalta. Se odotustila ansaitsee tunnistamisen, koska se lähettää ihmiset väärään komponenttiin.
Kun yritys on käynnissä, seuraa istuntalistaa ja käyttöliittymän omaa lokia kyseisen profiilin osalta. Istunto, joka ei koskaan poistu alkutilastaan, nimeää pysähtyneen komponentin, ja loki nimeää sen yleensä jo ensimmäisillä riveillä. Pidä profiilin nimi käsillä, sillä lokikomento ottaa profiilin eikä istuntopolkua, mikä on vielä yksi syy lukea lista uudelleen sen sijaan, että käyttäisi polkua uudelleen.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6Yhden komponentin lokin lukeminen istuntoa avaamatta
Kun käyttöliittymä ei kerro mitään hyödyllistä, mene komponenttiin, joka lokitti vian, sen sijaan että aloittaisit uuden yhteyden. Kun systemd-journald-kirjaaja on määritetty, ylläpitäjän rajattu journalinäkymä lukee yhden komponentin tapahtumat koskematta väyläkäytäntöön tai avaamatta istuntoa, millä on merkitystä, koska diagnoosi, joka muuttaa mittaamaansa järjestelmää, todistaa hyvin vähän. Suodata yksikön eikä syslog-tunnisteen mukaan: yksittäiset palveluyksiköt eivät takaa yhteistä tunnistetta, joten tunnistekysely voi palauttaa tyhjän sivun, vaikka yksikkö itse kirjasi vian.
Kirjaa neljä kenttää ennen kuin pyydät keneltäkään apua: virheen koko nimi, mukana oleva palvelu ja objekti, aikaleima sekä asennettujen pakettien versiot. Ne ovat se, mitä ylläpitäjä tarvitsee, eikä mikään niistä vaadi profiilin tai tunnisteen liittämistä tikettiin. Väylän käyttöoikeuskäytännön laajentaminen virheen vaientamiseksi ei ole diagnoosi, se poistaa rajan, joka nimesi komponentin puolestasi. Profiilien yksityinen sisältö pysyy jaettujen raporttien ulkopuolella samasta syystä kuin tunnisteet.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>Kieltäytyneen rajan korjaaminen
Kartan jokaisella rivillä on oma korjauksensa, eivätkä rivit korvaa toisiaan. Profiililla kielletty toiminto on kysymys käytännöstä ja omistajuudesta, kun taas taustaohjelma, joka ei aktivoidu, on kysymys palveluista ja paketoinnista. Palvelin, joka hylkää todennuksen, ei ole kumpikaan, joten toistuvat salasanan vaihdot eivät voi korjata paikallista aktivointiongelmaa. Väärän korjauksen valitseminen on se tapa, jolla käytäntöongelmasta tulee uudelleenasennus.
Pakettimuutoksen jälkeen varmista yhtenäinen ja tuettu asennus sen sijaan, että kopioisit vanhan binäärin paikalleen. Hallittu peruutus on oikeutettu vastaus vahvistettuun regressioon, edellyttäen että paketit pysyvät yhteensopivina ja paluu tuettuun ylläpitoon on olemassa. Perusta se polku ennen kuin palvelu lakkaa käynnistymästä, ei jälkeenpäin.
Toinen alusta voi jakaa saman VPN-ydinkirjaston jakamatta Linuxin väyläpalveluja, joten samannäköinen vika Windowsissa ei kerro tästä mitään. D-Bus-yleiskatsaus dokumentoi asetuksille ja istunnoille tarjotut objektipolut, ja se on se arkkitehtuurin osa, johon tämä diagnoosi nojaa. Lue se kerran, ja seuraava virhe saapuu komponentti jo kytkettynä siihen.