OpenVPN nepasileidžia, o klaidos pranešimas nurodo eilutę, kuri atrodo tvarkinga: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Sertifikatas nepasikeitė, failas atsidaro redaktoriuje, o kelyje niekas neatrodo neteisingai. Analizatorius nesikabinėja prie parinkties pavadinimo; jis prieštarauja, kiek argumentų atėjo su ja. Keturi patikrinimai išsprendžia beveik kiekvieną tokį atvejį, ir juos verta atlikti sąnaudų tvarka.

Kodėl analizatorius kaltina parinktį

Kiekviena konfigūracijos eilutė suskaidoma pagal tarpus ir pagal kabutes dar prieš bet kuriai parinkčiai ją pamatant. Todėl reikšmė su tarpu atkeliauja kaip keli argumentai, jei ji neįrėminta, o eilutę turėjusi parinktis praneša apie neatitikimą. Sistemoje Windows tai užtikrina numatytasis diegimo katalogas, nes C:\Program Files dėl savo sandaros yra kelio viduryje. Šioje klaidoje sertifikatas niekada neatidaromas, todėl failo egzistavimo patikrinimas nieko naudingo neįrodo.

Nurodytas eilutės numeris paprastai būna teisingas, o nurodyta parinktis yra ta, kuri sunaudojo eilutę. Kai įvardyta parinktis yra tokia, kurią, kaip žinote, niekada rašėte, perskaitykite eilutę virš jos, nes ankstesniame bloke pamestos kabutės pastumia analizę. Taip sertifikato blokui galiausiai tenka kaltė dėl argumentų skaičiaus.

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

Įrėminkite kabutėmis kiekvieną kelią su tarpu

Viena pora dvigubų kabučių aplink reikšmę yra visas pataisymas, o sistemoje Windows pasvirę brūkšniai priimami, todėl ekranavimas niekada netampa problemos dalimi. Pataisykite visas kelio parinktis tame pačiame ėjime, nes analizatorius sustoja ties pirmąja klaida, o kita tiesiog laukia kito paleidimo. Rinkinys paprastai apima ca, cert, key, tls-auth ir 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"

Paieška pagal katalogo pavadinimą randa kiekvieną pasitaikymą greičiau nei failo skaitymas. Paleiskite ją prieš bet kokį redagavimą, kad sąrašas būtų išsamus:

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

Profilio perkėlimas į kelią be tarpų yra tinkama alternatyva, ir ji tinkama tik jei kartu persikelia kiekvienas kelias. Pusiau perkeltas profilis atkartoja tą pačią klaidą su kitu failo vardu, o tai pastebėti sunkiau, nes pranešimas dabar rodo ką tik sukurta kelią. Pasirinkite vieną būdą ir užbaikite jį.

Atkurkite režimo deklaraciją prieš sertifikatus

Antroji dažna priežastis duoda kitą pranešimą su ta pačia iššvaistyta popiete. Kliento profilis turi deklaruoti savo režimą netoli viršaus, o ši deklaracija lengvai pasimeta, kai į naują failą įklijuojami tik sertifikatų blokai. Be jos OpenVPN skaito failą su kitu numatytųjų reikšmių rinkiniu, o žala pasirodo daug vėliau kaip parinkčių konfliktas arba nepavykęs prisijungimas. Trūkstamą eilutę patikrinti pigu, o pamiršti brangu.

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

Kol ten esate, laikykitės vienos direktyvos vienoje eilutėje. Sujungtos eilutės duoda būtent pirmosios dalies argumentų skaičiaus klaidą, o nurodyta eilutė atrodo pagrįstai, nes sujungimas įvyko ten, kur redaktorius perlaužė tekstą. Skaitykite neapdorotą eilutę, o ne rodomąją.

Kodavimo žala atrodo kaip parinkties pavadinimas

Failas, išsaugotas kaip UTF-16 su baitų tvarkos žyme, paslepia savo pirmąją parinktį nuo analizatoriaus, o klajojantys baitai gali prilipti prie parinkties pavadinimo pranešime. Išsaugokite failą kaip UTF-8 be baitų tvarkos žymės, tada vėl jį atidarykite ir patvirtinkite, kad pirmasis simbolis yra įprasta raidė. Redaktoriai, PowerShell peradresavimas ir iš pokalbių lango įklijuotas tekstas visi keičia kodavimą nepaklausę.

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

Baitų tvarkos žymė pasirodo kaip pirmaujantys žymės baitai prieš bet kokį tekstą, o šiuos simbolius trinti ranka yra pralaimintis ėjimas, nes redaktorius juos vėl įrašo kitą kartą išsaugodamas. Vietoj to išsaugokite failą iš naujo su aiškiu kodavimu. Eilučių galai yra pakantesni, bet failas be naujos eilutės pabaigoje po redagavimo vis tiek gali sulieti paskutinę direktyvą su ankstesne.

Kurį patikrinimą atlikti pirmiausia ir kodėl

Pradėkite nuo kodavimo, nes jam reikia vienos komandos ir jis panaikina bet kokį kitą failo skaitymą. Tada kabutės, paskui režimo deklaracija ir kitos privalomos direktyvos, o tik po jų sertifikatai, raktai ir prisijungimo duomenys. Dirbant šia tvarka kiekvienas žingsnis lieka atsukamas, nes sertifikatas, pakeistas kabučių problemai ištaisyti, palieka veikiančią diegseną su nauju gedimu, nutolusiu dviem redagavimais nuo originalo. Tvarka svarbesnė už atskirus patikrinimus.

Saugokite nepaliestą failo kopiją tokią, kokią ją pateikė operatorius. Jei vėlesnis redagavimas ją sugadins, skirtumas su ta kopija parodys, ar pasislinko kabutė, nauja eilutė ar žymės baitas, o tai greičiau nei iš naujo skaityti klaidą. Kiekvienos direktyvos parinkčių nuoroda yra įdiegtos versijos OpenVPN vadove.

Susiję straipsniai