OpenVPN се покреће при пријави, али не при подизању Windows-а?
Пречица у аутоматском покретању покреће десктоп апликацију, а не аутоматску услугу. Проверите који извор профила власник чита пре него што преместите датотеке.
Тунели који се појављују само након што се неко пријави обично се покрећу из сесије те особе, а не из аутоматске услуге. Уобичајени кривац је пречица у аутоматском покретању која покреће openvpn-gui.exe, и то није покварена инсталација. Пречица покреће десктоп апликацију унутар корисничке сесије, са профилом тог корисника, складиштима сертификата тог корисника и способношћу тог корисника да одговори на упит. Ништа од тога не чини везу независном од пријављеног човека, а управо то тунел пре пријаве захтева.
Симптом обично има три узрока
Три обрасца споља изгледају исто и имају различита решења. Први је извршни власник који је корисничка сесија уместо услуге, дакле случај пречице у аутоматском покретању. Други је профил који се налази тамо где услуга не гледа, па се услуга покрене, не нађе ништа и чисто се затвори. Трећи је профил који услуга нађе и покрене, али чији акредитиви траже интеракцију коју ниједна услуга не може да пружи.
Да би се утврдило који случај важи, потребна су два читања: шта је услуга конфигурисана да извршава и које датотеке може да види. Оба су по једна команда, и ниједно не ремети везу која ради.
Шта аутоматска услуга заправо чита
Аутоматска услуга Community је омотач који скенира конфигурисани директоријум за аутоматско покретање, обично config-auto у инсталацији, и покреће OpenVPN процес за сваки пронађени одговарајући профил. Профил видљив у GUI менију корисника налази се уместо тога под роаминг профилом тог корисника, у директоријуму који налог услуге не чита. Водич за Windows услугу описује то откривање, и вреди га прочитати пре него што било шта копирате, јер је циљни директоријум својство инсталације, а не фиксна конвенција. Зато копирање датотеке у GUI фасциклу ништа не мења за услугу, а копирање у сваку фасциклу названу config ствара дупликате уместо решења.
Get-Service OpenVPNService | Select-Object Status, StartType
Get-CimInstance Win32_Service | Where-Object Name -eq 'OpenVPNService' | Select-Object PathName, StartName
gci 'C:\Program Files\OpenVPN\config-auto'
Последња команда наводи шта ће омотач заиста видети, што је најбржи начин да потврдите да је профил на погрешном месту. Други ред приказује и налог под којим услуга ради, а тај налог одлучује које су путање датотека и складишта сертификата уопште доступне.
Зашто пријава на десктопу ради, а покретање при подизању не
Успех на десктопу може дуго да сакрије зависност од уноса. GUI може да прикупи лозинку кључа, лозинку налога или други фактор у дијалогу, јер ради у интерактивној сесији са видљивим десктопом. Услуга ради у сесији без десктопа, па захтев за унос нема где да се појави, а веза пада након истека времена које уопште не личи на проблем са акредитивима.
Приступ датотекама следи исто правило. Приватни кључ сачуван под корисничким профилом, или сертификат у корисничком личном складишту, није доступан услузи која ради као рачунар. Упоредите апсолутне путање, дозволе и избор сертификата који свака страна чини, уместо да претпоставите да иста профилна датотека значи исто окружење.
Планирани задатак подешен да се извршава без обзира на то да ли је корисник пријављен наслеђује слично ограничење. Може успешно да покрене GUI извршну датотеку и ипак створи процес који никада не добије акредитиве, па присуство процеса у менаџеру задатака није доказ тунела који ради.
Изаберите једног власника и испробајте стварни животни циклус
За везу која припада пријављеној особи користите понашање аутоматског покретања које GUI подржава и оставите услугу изван тога. За тунел који мора да постоји пре него што се било ко пријави, конфигуришите услугу, сместите профил тамо где га омотач чита и користите подржани механизам акредитива без надзора, попут кључа без интерактивне лозинке или документоване датотеке са акредитивима.
Get-Content 'C:\Program Files\OpenVPN\log\openvpn.log' -Tail 40
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object ProviderName -like '*OpenVPN*'
Испробајте животни циклус који је важан: поновно подизање без икога пријављеног, затим поновно повезивање након промене мреже. Држите једног власника везе, јер два конкурентска механизма покретања обично стварају две инстанце које се боре за исте руте и исту серверску сесију, што је теже дијагностиковати него било који механизам засебно.