OpenVPN sa nespustí a chybová správa ukazuje na riadok, ktorý vyzerá v poriadku: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Certifikát sa nezmenil, súbor sa otvára v editore a na ceste nič nevyzerá zle. Parser nenamieta názov voľby; namieta, koľko argumentov s ňou dorazilo. Štyri kontroly vyriešia takmer každý takýto prípad a oplatí sa ich urobiť v poradí podľa nákladov.

Prečo parser obviňuje voľbu

Každý riadok konfigurácie sa rozdelí na medzery a na úvodzovky skôr, než ho uvidí akákoľvek voľba. Hodnota s medzerou preto dorazí ako niekoľko argumentov, ak nie je uzavretá v úvodzovkách, a voľba, ktorej riadok patril, ohlási nesúlad. Vo Windows to istí predvolený inštalačný adresár, pretože C:\Program Files stojí už zo svojej konštrukcie v strede cesty. Pri tejto chybe sa certifikát nikdy neotvorí, takže kontrola, či súbor existuje, nič užitočné nedokazuje.

Uvedené číslo riadku býva správne a uvedená voľba je tá, ktorá riadok spotrebovala. Keď je menovaná voľba tá, ktorú ste podľa svojho vedomia nikdy nenapísali, prečítajte riadok nad ňou, pretože stratená úvodzovka v skoršom bloku posúva parsovanie. Takto nakoniec blok s certifikátom dostane vinu za počet argumentov.

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

Uzavrite do úvodzoviek každú cestu s medzerou

Jeden pár dvojitých úvodzoviek okolo hodnoty je celá oprava a dopredné lomky sú vo Windows prijateľné, takže escapovanie sa nikdy nestane súčasťou problému. Opravte všetky voľby ciest v jednom prechode, pretože parser sa zastaví na prvej chybe a ďalšia už len čaká na ďalší reštart. Sada zvyčajne zahŕňa ca, cert, key, tls-auth a 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"

Hľadanie podľa názvu adresára nájde každý výskyt rýchlejšie než čítanie súboru. Spustite ho pred akoukoľvek úpravou, aby bol zoznam úplný:

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

Presun profilu na cestu bez medzier je platná alternatíva a platí len vtedy, ak sa s ním presunie každá cesta. Napoly presunutý profil reprodukuje tú istú chybu s iným názvom súboru, čo je ťažšie postrehnúť, pretože správa teraz ukazuje na cestu, ktorú ste práve vytvorili. Zvoľte jeden prístup a dokončite ho.

Vráťte deklaráciu režimu pred certifikáty

Druhá častá príčina dáva inú správu s tým istým premrhaným popoludním. Profil klienta musí deklarovať svoj režim blízko začiatku a táto deklarácia sa ľahko stratí, keď sa do nového súboru vložia len bloky certifikátov. Bez nej OpenVPN číta súbor s inou sadou predvolených hodnôt a škoda sa prejaví oveľa neskôr ako konflikt medzi voľbami alebo neúspešné prihlásenie. Chýbajúci riadok je lacné skontrolovať a drahé zabudnúť.

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

Kým ste tam, držte jednu direktívu na riadok. Spojené riadky dávajú presne chybu počtu argumentov z prvej časti a uvedený riadok vyzerá rozumne, pretože spojenie nastalo tam, kde editor zalomil text. Čítajte surový riadok, nie zobrazený.

Poškodenie kódovania vyzerá ako názov voľby

Súbor uložený ako UTF-16 vrátane značky poradia bajtov skrýva parseru svoju prvú voľbu a zatúlané bajty sa môžu v správe prilepiť k názvu voľby. Uložte súbor ako UTF-8 bez značky poradia bajtov, potom ho znova otvorte a overte, že prvý znak je bežné písmeno. Editory, presmerovanie v PowerShelli aj text vložený z okna chatu menia kódovanie bez pýtania.

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

Značka poradia bajtov sa objavuje ako úvodné bajty značky pred akýmkoľvek textom a mazať tieto znaky ručne je prehraný ťah, pretože ich editor pri ďalšom uložení zapíše späť. Namiesto toho uložte súbor znova s výslovným kódovaním. Konce riadkov sú zhovievavejšie, ale súbor bez nového riadku na konci môže po úprave poslednú direktívu ešte zlúčiť s predchádzajúcou.

Ktorú kontrolu urobiť prvú a prečo

Začnite kódovaním, pretože stojí jeden príkaz a zneplatní každé ďalšie čítanie súboru. Potom úvodzovky, potom deklarácia režimu a ostatné povinné direktívy, a až po nich certifikáty, kľúče a prihlasovacie údaje. Práca v tomto poradí udržiava každý krok vratný, pretože certifikát vymenený kvôli oprave problému s úvodzovkami nechá fungujúcu inštaláciu s novou poruchou dve úpravy od originálu. Poradie je dôležitejšie než jednotlivé kontroly.

Uchovajte nedotknutú kópiu súboru tak, ako ju dodal operátor. Ak ju neskoršia úprava pokazí, rozdiel proti tejto kópii ukáže, či sa posunula úvodzovka, nový riadok alebo bajt značky, čo je rýchlejšie než znovu čítať chybu. Referencia volieb pre každú direktívu je v príručke OpenVPN pre nainštalovanú verziu.

Súvisiace články