OpenVPN не стартува, а пораката за грешка покажува на линија што изгледа сосема во ред: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Сертификатот не е променет, датотеката се отвора во уредувач, и ништо во патеката не изгледа погрешно. Парсерот не го оспорува името на опцијата; го оспорува тоа колку аргументи пристигнаа со неа. Четири проверки решаваат речиси секој ваков случај, и вреди да се изведат по редослед на трошок.

Зошто парсерот ја обвинува опцијата

Секоја конфигурациска линија се дели на празни места и на наводници пред некоја опција воопшто да ја види. Затоа вредност што содржи празно место пристигнува како неколку аргументи ако не е опфатена, а опцијата на која ѝ припаѓала линијата пријавува несовпаѓање. На Windows тоа го прави сигурно стандардната папка за инсталација, бидејќи C:\Program Files по конструкција стои во средината на патеката. Сертификатот никогаш не се отвора при оваа грешка, па проверката дали датотеката постои не докажува ништо корисно.

Пријавениот број на линија обично е точен, а пријавената опција е онаа што ја потрошила линијата. Кога наведената опција е онаа што знаете дека никогаш не сте ја напишале, прочитајте ја линијата над неа, бидејќи изгубен наводник во претходен блок го поместува парсирањето. Така блокот со сертификат на крајот бива обвинет за бројот на аргументи.

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

Ставете наводници околу секоја патека со празно место

Еден пар двојни наводници околу вредноста е целата поправка, а на Windows косите црти се прифаќаат, па екранирањето никогаш не станува дел од проблемот. Поправете ја секоја опција за патека во истиот премин, бидејќи парсерот застанува на првиот неуспех, а следната само чека следно рестартирање. Множеството обично ги вклучува ca, cert, key, tls-auth и 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"

Пребарувањето по името на папката го наоѓа секое појавување побрзо отколку читањето на датотеката. Извршете го пред какво било уредување, за списокот да биде целосен:

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

Преместувањето на профилот во патека без празни места е валидна алтернатива, и е валидна само ако секоја патека се премести со него. Полупреместен профил ја репродуцира истата грешка со друго име на датотека, што е потешко да се забележи бидејќи пораката сега покажува на патека што штотуку сте ја создале. Изберете еден пристап и завршете го.

Вратете ја декларацијата за режим пред сертификатите

Втората честа причина дава друга порака со истото потрошено попладне. Профилот на клиентот мора да го декларира својот режим близу до врвот, и таа декларација лесно се губи кога во нова датотека се ставаат само блоковите со сертификати. Без неа OpenVPN ја чита датотеката со друго множество стандардни вредности, а штетата се појавува многу подоцна како конфликт меѓу опции или неуспешно најавување. Линијата што недостига е ефтина за проверка и скапа за заборавање.

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

Држете по една директива на линија додека сте таму. Споените линии ја даваат токму грешката за број на аргументи од првиот дел, а пријавената линија изгледа разумно бидејќи спојувањето се случило таму каде што уредувачот го преломил текстот. Читајте ја суровата линија, а не прикажаната.

Оштетувањето од кодирање изгледа како име на опција

Датотека зачувана како UTF-16, со ознака за редослед на бајти, ја крие својата прва опција од парсерот, а залутаните бајти можат да се залепат на името на опцијата во пораката. Зачувајте ја датотеката како UTF-8 без ознака за редослед на бајти, потоа отворете ја повторно и потврдете дека првиот знак е обична буква. Уредувачите, пренасочувањето во PowerShell и текстот вметнат од прозорец за разговор ја менуваат кодирањето без да прашаат.

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

Ознаката за редослед на бајти се појавува како водечки бајти на ознака пред каков било текст, и бришењето на тие знаци рачно е губитнички потег бидејќи уредувачот ги запишува назад при следното зачувување. Наместо тоа зачувајте ја датотеката повторно со експлицитно кодирање. Краевите на линиите се попопустливи, но датотека без нов ред на крајот сепак може да ја спои последната директива со претходната по уредување.

Која проверка прва и зошто

Започнете со кодирањето, бидејќи чини една команда и го поништува секое друго читање на датотеката. Потоа наводниците, потоа декларацијата за режим и другите задолжителни директиви, и само по нив сертификатите, клучевите и податоците за најава. Работата во тој ред го задржува секој чекор вратлив, бидејќи сертификат заменет за да се поправи проблем со наводници остава работна инсталација со нов дефект два уредувања од оригиналот. Редоследот е поважен од поединечните проверки.

Чувајте недопрена копија од датотеката каква што ја доставил операторот. Ако подоцнежно уредување ја расипе, разликата со таа копија покажува дали се поместил наводник, нов ред или бајт од ознаката, што е побрзо од повторно читање на грешката. Референцата за опциите на секоја директива е во прирачникот на OpenVPN за инсталираната верзија.

Поврзани статии