Ang mga tunnel na lumilitaw lamang pagkatapos mag-log in ang isang tao ay karaniwang inilulunsad ng session ng taong iyon, hindi ng automatic na serbisyo. Ang karaniwang salarin ay isang startup shortcut na naglulunsad ng openvpn-gui.exe, at hindi ito sirang installation. Inilulunsad ng shortcut ang isang desktop app sa loob ng user session, kasama ang profile ng user na iyon, ang mga certificate store ng user na iyon at ang kakayahan ng user na iyon na sagutin ang isang prompt. Wala sa mga ito ang gumagawa sa koneksyon na independiyente sa isang naka-log in na tao, at iyon mismo ang kailangan ng tunnel bago ang login.

Ang sintomas ay karaniwang may tatlong dahilan

Tatlong pattern ang magkamukha mula sa labas at may magkaibang pagwawasto. Ang una ay isang execution owner na user session sa halip na serbisyo, na siyang kaso ng startup shortcut. Ang pangalawa ay isang profile na nasa lugar na hindi tinitingnan ng serbisyo, kaya nagsisimula ang serbisyo, walang mahanap at malinis na lumalabas. Ang pangatlo ay isang profile na nahahanap at nasisimulan ng serbisyo, ngunit ang mga kredensyal nito ay nangangailangan ng interaksyon na hindi maibibigay ng anumang serbisyo.

Upang matukoy kung alin ang naaangkop, kailangan ng dalawang pagbasa: ano ang naka-configure na patakbuhin ng serbisyo, at aling mga file ang nakikita nito. Parehong isang utos bawat isa, at wala sa kanila ang nakakagambala sa tumatakbong koneksyon.

Ano ang aktwal na binabasa ng automatic na serbisyo

Ang automatic na serbisyo ng Community ay isang wrapper na nag-scan ng naka-configure na auto-start directory nito, karaniwang config-auto sa ilalim ng installation, at naglulunsad ng OpenVPN process para sa bawat tugmang profile na nahahanap nito. Ang profile na nakikita sa GUI menu ng isang user ay nasa ilalim ng roaming profile ng user na iyon, sa isang directory na hindi binabasa ng service account. Inilalarawan ng gabay ng serbisyo ng Windows ang pagtuklas na iyon, at sulit itong basahin bago kopyahin ang anuman, dahil ang target na directory ay katangian ng installation at hindi isang nakapirming kombensiyon. Kaya ang pagkopya ng file sa GUI folder ay walang binabago para sa serbisyo, at ang pagkopya nito sa bawat folder na tinatawag na config ay lumilikha ng mga duplicate sa halip na pagwawasto.

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'

Inililista ng huling utos kung ano ang aktwal na makikita ng wrapper, na siyang pinakamabilis na paraan upang kumpirmahin na ang profile ay nasa maling lugar. Ipinapakita rin ng pangalawang linya ang account kung saan tumatakbo ang serbisyo, at ang account na iyon ang nagpapasya kung aling mga file path at certificate store ang maaabot.

Bakit gumagana ang login sa desktop at hindi ang pagsisimula sa boot

Maaaring itago ng tagumpay sa desktop ang dependency sa input nang mahabang panahon. Ang GUI ay makakapagtipon ng key passphrase, account password o pangalawang factor sa isang dialog, dahil tumatakbo ito sa isang interactive na session na may nakikitang desktop. Ang serbisyo ay tumatakbo sa isang session na walang desktop, kaya ang kahilingan para sa input ay walang lugar na paglitawan, at nabibigo ang koneksyon pagkatapos ng timeout na hindi talaga kamukha ng problema sa kredensyal.

Ang pag-access sa file ay sumusunod sa parehong tuntunin. Ang isang pribadong key na nakaimbak sa ilalim ng profile ng user, o isang certificate sa personal na store ng user, ay hindi available sa isang serbisyong tumatakbo bilang makina. Paghambingin ang mga absolute path, pahintulot at pagpili ng certificate na ginagawa ng bawat panig sa halip na ipalagay na ang parehong profile file ay nangangahulugan ng parehong kapaligiran.

Ang isang naka-iskedyul na gawain na itinakda upang tumakbo kahit naka-log in ang isang user o hindi ay nagmamana ng katulad na paghihigpit. Maaari nitong matagumpay na simulan ang GUI executable at gayon pa man ay makabuo ng isang proseso na hindi kailanman nakakakuha ng kredensyal, kaya ang pagkakaroon ng proseso sa task manager ay hindi patunay ng gumaganang tunnel.

Pumili ng isang may-ari at subukan ang tunay na lifecycle

Para sa isang koneksyon na pag-aari ng isang naka-log in na tao, gamitin ang sinusuportahang pag-uugali ng autostart ng GUI at ilabas ang serbisyo. Para sa isang tunnel na dapat umiral bago mag-log in ang sinuman, i-configure ang serbisyo, ilagay ang profile kung saan ito binabasa ng wrapper, at gumamit ng sinusuportahang mekanismo ng kredensyal na walang tao tulad ng key na walang interactive na passphrase o dokumentadong credentials file.

Get-Content 'C:\Program Files\OpenVPN\log\openvpn.log' -Tail 40
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object ProviderName -like '*OpenVPN*'

Subukan ang lifecycle na mahalaga: isang reboot na walang nag-log in, pagkatapos ay isang muling pagkonekta pagkatapos ng pagbabago sa network. Panatilihin ang isang may-ari para sa koneksyon, dahil ang dalawang nakikipagkumpitensyang mekanismo ng startup ay karaniwang gumagawa ng dalawang instance na nag-aaway sa parehong mga ruta at parehong server session, na mas mahirap i-diagnose kaysa sa alinman sa mga mekanismo nang mag-isa.

Kaugnay na mga artikulo