Дали 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*'
Тестирајте го животниот циклус што е важен: повторно подигнување без никој да се најави, потоа повторно поврзување по промена на мрежата. Држете еден сопственик за врската, бидејќи два конкурентни механизми за стартување обично создаваат две инстанци што се борат за истите рути и истата серверска сесија, а тоа е потешко да се дијагностицира отколку кој било механизам сам.