Неуспесите во OpenVPN 3 Linux доаѓаат како грешка на метод на D-Bus со непознато име, и искушението е да вратите пакет на претходна верзија и да се надевате. Клиентот не е една програма: интерфејсот од командната линија разговара преку автобусот со услуги што ги поседуваат профилите, сесиите, VPN моторот и привилегираните мрежни промени. Да одлучите која од тие пет ја поседува неуспешната повик е поголемиот дел од дијагнозата и чини една команда наместо враќање на верзија. Следново е токму таа одлука, по редот во кој неуспесите обично се појавуваат.

Пет сопственици зад една команда

Пет процеси се важни и секој има свое име на автобусот: интерфејсот што ја прима вашата команда, менаџерот за конфигурација што ги чува профилите и нивната политика за пристап, менаџерот за сесии што го поседува траењето на сесијата, заднината што ја води врската преку OpenVPN 3 Core Engine и услугата за мрежна конфигурација што го инсталира интерфејсот, рутите и поставките за DNS. Затоа грешка што именува конфигурациски објект не е грешка на заднината, а заднина што не стартува не е неуспех на автентикацијата. Сместувањето на пораката во еден од тие редови мора да се случи пред да се смени нешто, бидејќи секој следен чекор зависи од тоа кој ред е вистинит. Погодувањето на редот е патот по кој кратката поправка станува попладне работа со пакети.

Прашајте го системскиот автобус кои услуги се присутни пред да прашате нешто друго, потоа потврдете дека инсталираните делови се согласуваат за верзија. OpenVPN 3 Linux ги регистрира тие услуги како системски единици, затоа автобусот што треба да се праша е системскиот, барањето за верзија бара административни овластувања, а список направен со --user ја чита вашата сесија за најава, каде единиците никогаш не се појавуваат. Услугите се активираат при барање и некои завршуваат кога се неактивни, затоа услуга што недостасува пред вашето прво барање едноставно сѐ уште не била прашана за ништо. Трите команди подолу одговараат за присуство, верзија и состојба на единица без отворање VPN сесија.

sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'

Што навистина докажува секој список

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

openvpn3 configs-list
openvpn3 sessions-list

Патеките на објекти во тие излези означуваат управувани објекти на автобусот, а не датотеки, затоа не можат да се уредуваат, а претходно запишана патека станува застарена во мигот кога таа сесија се исклучува. Повторното користење на патека од вашите белешки дава грешки "no such object" што немаат никаква врска со VPN. Табелата со фази подолу го одделува она што го воспоставува секој чекор од врската од она што го остава отворено, и одлуката за враќање на верзија се потпира токму на таа разлика. Прочитајте го редот што одговара на вашиот доказ, потоа прочитајте го текстот на грешката повторно.

StageWhat existsWhat proves itWhat it does not prove
Profile importedA configuration object held by the configuration managerThe profile is listed by the clientThat the profile owner permits a connection
Session requestedA session object held by the session managerThe session appears in the session listThat the remote side accepted the credentials
Connect dispatchedAn asynchronous attempt on the VPN backendStatus changes arrive for that sessionThat an interface was configured
Tunnel configuredAn interface, routes and DNS settingsThe network service reports success and routes appearThat traffic reaches the peer

Повикот за поврзување се враќа пред тунелот да постои

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

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

openvpn3 sessions-list
openvpn3 log --config <profile> --level 6

Читање на дневникот на една компонента без отворање сесија

Кога интерфејсот не известува ништо корисно, одете кај компонентата што го запиша неуспехот во дневникот, наместо да започнете нова врска. Со конфигуриран регистратор systemd-journald, ограничениот преглед на дневникот на администраторот ги чита настаните на една компонента без да ја допира политиката на автобусот и без да отвора сесија, што е важно затоа што дијагноза што го менува системот што го мери докажува многу малку. Филтрирајте по единица, а не по ознака на syslog: одделните услужни единици не гарантираат заеднички идентификатор, затоа барање по ознака може да врати празна страница, додека самата единица го запишала неуспехот.

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

journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>

Поправка на границата што одби

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

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

Друга платформа може да ја дели истата основна VPN библиотека без да ги дели автобуските услуги на Linux, затоа сличен неуспех во Windows не кажува ништо за овој. Прегледот на D-Bus ги документира патеките на објекти изложени за конфигурации и сесии, и токму тој дел од архитектурата ја носи оваа дијагноза. Прочитајте го еднаш и следната грешка ќе дојде со веќе прикачена компонента.

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