OpenVPN ei käynnisty, ja virheilmoitus osoittaa riville, joka näyttää aivan kunnossa olevalta: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Varmenne ei ole muuttunut, tiedosto avautuu editorissa, eikä polussa näytä olevan mitään vialla. Jäsentäjä ei vastusta valitsimen nimeä; se vastustaa sitä, kuinka monta argumenttia sen mukana saapui. Neljä tarkistusta ratkaisee lähes jokaisen tällaisen tapauksen, ja ne kannattaa tehdä kustannusjärjestyksessä.

Miksi jäsentäjä syyttää valitsinta

Jokainen asetusrivi jaetaan välilyönneillä ja lainausmerkeillä ennen kuin yksikään valitsin näkee sen. Siksi välilyönnin sisältävä arvo saapuu useana argumenttina, ellei sitä ole ympäröity, ja rivin omistanut valitsin ilmoittaa poikkeamasta. Windowsissa oletusasennuskansio tekee siitä varmaa, koska C:\Program Files on rakenteellisesti polun keskellä. Varmennetta ei koskaan avata tässä virheessä, joten tiedoston olemassaolon tarkistaminen ei todista mitään hyödyllistä.

Ilmoitettu rivinumero on yleensä oikea, ja ilmoitettu valitsin on se, joka kulutti rivin. Kun nimetty valitsin on sellainen, jota tiedät et koskaan kirjoittaneesi, lue rivi sen yläpuolelta, koska aiemmassa lohkossa kadonnut lainausmerkki siirtää jäsennystä. Näin varmennelohko päätyy lopulta syytetyksi argumenttien määrästä.

ca C:\Program Files\OpenVPN\config\office-ca.crt

Laita lainausmerkit jokaisen välilyönnin sisältävän polun ympärille

Yksi pari kaksoislainausmerkkejä arvon ympärillä on koko korjaus, ja kauttaviivat hyväksytään Windowsissa, joten escapetus ei koskaan tule osaksi ongelmaa. Korjaa jokainen polkuvalitsin samassa läpikäynnissä, koska jäsentäjä pysähtyy ensimmäiseen virheeseen ja seuraava vain odottaa seuraavaa uudelleenkäynnistystä. Joukko sisältää yleensä ca, cert, key, tls-auth ja auth-user-pass.

ca "C:/Program Files/OpenVPN/config/office-ca.crt"
cert "C:/Program Files/OpenVPN/config/office.crt"
key "C:/Program Files/OpenVPN/config/office.key"

Haku hakemiston nimellä löytää jokaisen esiintymän nopeammin kuin tiedoston lukeminen. Suorita se ennen mitään muokkausta, jotta luettelo on täydellinen:

Select-String -Path .\office.ovpn -Pattern 'Program Files'

Profiilin siirtäminen polulle ilman välilyöntejä on kelvollinen vaihtoehto, ja se on kelvollinen vain jos jokainen polku siirtyy sen mukana. Puoliksi siirretty profiili toistaa saman virheen eri tiedostonimellä, ja se on vaikeampi havaita, koska viesti osoittaa nyt polkuun, jonka juuri loit. Valitse yksi lähestymistapa ja vie se loppuun.

Palauta tilamääritys ennen varmenteita

Toinen yleinen syy tuottaa erilaisen viestin samalla tuhlatuksi menneellä iltapäivällä. Asiakasprofiilin on ilmoitettava tilansa lähellä alkua, ja tämä määritys katoaa helposti, kun uuteen tiedostoon liitetään vain varmennelohkot. Ilman sitä OpenVPN lukee tiedoston toisella oletusarvojoukolla, ja vahinko ilmenee paljon myöhemmin valitsimien välisenä ristiriitana tai epäonnistuneena kirjautumisena. Puuttuva rivi on halpa tarkistaa ja kallis unohtaa.

client
dev tun
proto udp
remote vpn.example.net 1194

Pidä yksi direktiivi rivillä, kun olet siellä. Yhdistetyt rivit tuottavat täsmälleen ensimmäisen osan argumenttimäärävirheen, ja ilmoitettu rivi näyttää järkevältä, koska yhdistäminen tapahtui siinä, missä editori taittoi tekstin. Lue raakaa riviä, älä näytettyä.

Koodausvaurio näyttää valitsimen nimeltä

UTF-16-tiedostona tallennettu tiedosto, tavujärjestysmerkki mukaan lukien, kätkee ensimmäisen valitsimensa jäsentäjältä, ja irralliset tavut voivat takertua valitsimen nimeen viestissä. Tallenna tiedosto UTF-8-muodossa ilman tavujärjestysmerkkiä, avaa se sitten uudelleen ja varmista, että ensimmäinen merkki on tavallinen kirjain. Editorit, PowerShellin uudelleenohjaus ja chat-ikkunasta liitetty teksti muuttavat kaikki koodauksen kysymättä.

Format-Hex .\office.ovpn | Select-Object -First 1

Tavujärjestysmerkki näkyy johtavina merkkitavuina ennen mitään tekstiä, ja näiden merkkien poistaminen käsin on häviävä siirto, koska editori kirjoittaa ne takaisin seuraavalla tallennuksella. Tallenna tiedosto sen sijaan uudelleen eksplisiittisellä koodauksella. Rivinloput ovat sallivampia, mutta tiedosto, jonka lopussa ei ole rivinvaihtoa, voi silti yhdistää viimeisen direktiivin edelliseen muokkauksen jälkeen.

Mikä tarkistus ensin, ja miksi

Aloita koodauksesta, koska se maksaa yhden komennon ja mitätöi kaikki muut tiedoston luvut. Sitten lainausmerkit, sitten tilamääritys ja muut pakolliset direktiivit, ja vasta niiden jälkeen varmenteet, avaimet ja tunnistetiedot. Tässä järjestyksessä työskentely pitää jokaisen vaiheen peruutettavana, koska lainausmerkki ongelman korjaamiseksi vaihdettu varmenne jättää toimivan asennuksen uuden vian kanssa, joka on kaksi muokkausta alkuperäisestä. Järjestys merkitsee enemmän kuin yksittäiset tarkistukset.

Säilytä koskematon kopio tiedostosta sellaisena kuin operaattori sen toimitti. Jos myöhempi muokkaus rikkoo sen, ero tähän kopioon näyttää, siirtyikö lainausmerkki, rivinvaihto vai merkkitavu, ja se on nopeampaa kuin virheen uudelleen lukeminen. Jokaisen direktiivin valitsinviittaus on asennetun version OpenVPN-käsikirjassa.

Aiheeseen liittyvät artikkelit