openvpn --errors-to-stderr е опция за стартиране, а не грешка
Фактът, че виждате --errors-to-stderr в команден ред, не означава, че нещо се е провалило. Решете дали четете ред за стартиране или изхода на процеса, после проверете.
Команден ред, съдържащ --errors-to-stderr изглежда като оплакване, но не е. Думата принадлежи на име на опция, точно както името на лог файл не казва нищо за това какво съдържа файлът. Преди да промените каквато и да е конфигурация, установете какво всъщност четете.
Решението има три клона: редът е самото стартиране, редът е изход, който програмата е отпечатала, или редът е текст, който обвивка е извела преди VPN да стартира. Всеки клон сочи към различно място за проверка и само един от тях е собственото съобщение на VPN.
Името на опция не е съобщение за състояние
За Community OpenVPN, --errors-to-stderr насочва изхода за грешки към стандартния изход за грешки вместо към стандартния изход. Това е избор на поток, а не филтър по тежест, и не създава грешка. По-късен --log или --log-append може да пренасочи същите съобщения във файл, затова ефектът на флага зависи от останалата част от командата. Справочникът за журналиране от източника определя този ред.
Следователно присъствието на флага ви казва накъде ще отидат грешките. То не ви казва, че е възникнала такава.
Ред за стартиране или изход на процеса
Започнете с въпроса кой е отпечатал текста. Сервизна единица, пакет на приложение или обвивка често извеждат пълния argv, преди процесът VPN да напише каквото и да е. Това ехо е неразличимо от ред за състояние, ако виждате само фрагмент.
Ако редът идва от обвивката, VPN още не е работил и няма какво да съобщи. Продължете надолу в изхода и търсете първото съобщение с времева марка или име на подсистема.
Ако редът идва от процеса VPN, той все още е само извикването. OpenVPN не отпечатва собствения си команден ред като грешка и важните съобщения идват след него.
Намерете процеса и резултата му
Установете дали процесът все още работи. Клиент, който работи и опитва отново, изглежда съвсем различно от такъв, който е излязъл веднага, а един и същ команден ред стои пред двата.
След това прочетете резултата през компонента, който притежава процеса. Под systemd това е журналът на единицата; при настолно приложение — собственият лог или конзола на приложението. Статусът на изход и последните съобщения отговарят на въпроса, за който името на опцията само подсказва.
Грешка при разбор на конфигурация, липсващ файл, отхвърлени идентификационни данни и изтичане на времето към партньора са четири различни събития. Те пристигат по един и същ поток. Нуждаят се от четири различни поправки. Решете кое от тях имате, преди да пипате профила, и цитирайте точното съобщение, когато искате помощ.
Кога флагът заслужава мястото си
Флагът заслужава мястото си, когато stdout носи данни и грешките не бива да го замърсяват, или когато обвивка улавя двата потока отделно. При сесия на преден план в терминал и двата потока се озовават пред вас. В такъв случай разликата рядко променя това, което правите.
Запазете го, ако околният скрипт зависи от разделянето. Премахването му, защото името изглежда тревожно, променя къде се появяват съобщенията и не поправя нищо друго.
Какво да не променяте
Не третирайте опцията като стъпка за ремонт. Изтриването ѝ не може да поправи сертификат, маршрут или провал на удостоверяване.
Ако извикването съдържа --config stdin, конфигурацията се подава през стандартния вход. Това е отделно решение за това как се предоставя файлът. Променяйте по едно нещо наведнъж и прочетете отново действителното съобщение, преди да промените второто.