Tunelə baxırsınız, systemctl status openvpn işlədirsiniz və Main PID olmadan, boş proses siyahısı ilə active (exited) alırsınız. Təbii oxunuş xidmətin başlayıb öldüyüdür, ona görə uniti açıb /bin/true tapır və paketin xarab olduğu qənaətinə gəlirsiniz. Debian paketləməsində bu vəziyyət wrapper-in dizayn üzrə işləməsidir və tunel onun başlatdığı instans unitlərindən birində yaşayır. Ümumi unit heç vaxt hansı instansın onu qurduğunu deməyəcək.

Bu unitdə active (exited) əslində nə deməkdir

Paketlənmiş unit bir dəfəlik işdir: onun ExecStart komandası /bin/true-dur və bitmiş unitin active (exited) kimi göstərilməsini RemainAfterExit=yes saxlayır. Bu direktivi götürsəniz, eyni uğurlu /bin/true işi inactive (dead) ilə bitir, bu da insanların gözlədiyi və əks istiqamətdə səhv oxuduğu vəziyyətdir. Komanda yalnız yer tutucudur və unit başqa unitlərin gördüyü iş barədə hesabat verir. Bu quruluşda heç nə xarab deyil və /bin/true-nu dəyişmək tuneli deyil, paketləmə müqaviləsini dəyişir.

Wrapper səlahiyyət ötürür. Paket konfiqurasiyasının və ya onun systemd generatorunun təqdim etdiyi instans unitlərini başladır, buna görə boş proses siyahısı tunel barədə heç nə sübut etmir. Heç bir instans seçilmədikdə wrapper yenə uğur qazanır və yenə heç nə başlatmır. Vəziyyət wrapper-in işləyib-işləmədiyini cavablandırır, tunelin olub-olmadığını yox.

Status çıxışının üç sətrini mötərizədəki sözdən əvvəl oxuyun. Loaded systemd-nin oxuduğu unit faylını adlandırır, Active son uğurlu işə salmanın vaxt möhürünü daşıyır və Main PID-in olmaması bitmiş bir dəfəlik işə uyğundur. Bu üç sətir həm də bu wrapper-i başladıqdan bir saniyə sonra çökən xidmətdən ayırmağın yoludur.

Statusu yenidən oxumazdan əvvəl unitləri sadalayın

Nəyin işlədiyini soruşmazdan əvvəl systemd-dən nəyin mövcud olduğunu soruşun. Şablon quraşdırıla bilər, halbuki heç bir instans yaradılmayıb və tuneli yalnız yaradılmış unit daşıyır. Yüklənmiş dəstlə başlayın:

systemctl list-units 'openvpn*'

Bu siyahı systemd-nin hazırda yüklədiyidir və tunel inventarına ən yaxın şeydir. Quraşdırılmış unit faylları başqa suala cavab verir və heç nə yaradılmayanda o siyahı hələ də şablon göstərir:

systemctl list-unit-files 'openvpn*'

İki siyahını birlikdə oxuyun, çünki ikincidəki şablon və birincidəki instans fərqli cavablardır. Mövcud olan şablonla işləyən instans eyni fakt deyil və yalnız ikincisi tunel deməkdir. Paket düzənləri distributivlərə və OpenVPN versiyalarına görə də fərqlənir. Köhnə openvpn@ şablonu, ayrılmış client və server cütü və distributiv wrapper-i öz paketləmələrində qanuni ola bilər.

Tapdığınız dərsliyə deyil, öz maşınınıza uyğunlaşdırın. Başqasının çıxışındakı instans adı office ola bilər, sizinki isə home və ya work. Keçən şey üsuldur, sətir deyil.

İnstans adını onun oxuduğu fayla qədər izləyin

Yuxarı axın client şablonunda unitin iş qovluğu /etc/openvpn/client-dir və komandası oradan %i.conf götürür, buna görə openvpn-client@office /etc/openvpn/client/office.conf faylını oxuyur. Bu uyğunluğu nümunəyə güvənmək əvəzinə quraşdırılmış unitdə təsdiqləyin, çünki sizdə olan şablon köhnə və ya distributiv tərəfindən yenidən yazılmış ola bilər:

systemctl cat [email protected]

O çıxışın altında görünən drop-in-ləri oxuyun, çünki .d/ altındakı fayl ExecStart-ı, iş qovluğunu və ya konfiqurasiya yolunu dəyişə bilər. office.ovpn adı ilə endirdiyiniz profil instansın açdığı fayl deyil. Bu boşluq adətən xətanın heç redaktə etmədiyiniz yolu göstərməsinin səbəbidir.

Profildəki nisbi yollar növbəti tələdir. Əsas faylı köçürüb ca, cert və key istinadlarını nisbi saxladıqda itkin fayl xətasını başqa bir itkin fayl xətası ilə əvəz edirsiniz. İkincisi mövcud olduğuna əmin olduğunuz faylı göstərir, buna görə profil qovluğu fayl adından daha vacibdir.

Onu başladın, sonra həmin instansın jurnalını oxuyun

Yenicə yoxladığınız instansı başladın, çünki ümumi unitin jurnalı tunelin xətalarını ehtiva etməyəcək. Sonra bu açılış üçün jurnalı oxuyun və bu ardıcıllıqla konfiqurasiya xətası, fayl girişi xətası və bağlantı xətası axtarın, çünki hər biri başlamanın fərqli mərhələsində uğursuz olur.

sudo systemctl start [email protected]
journalctl -u [email protected] -b

Başlatmaq və aktivləşdirmək ayrı qərarlardır: start uniti indi işlədir, enable növbəti açılışı təşkil edir, enable --now isə hər ikisini bir addımda edir. daemon-reload unit təyinatlarını yenidən oxuyur və işləyən prosesi yenidən başlatmır, redaktə edilmiş profili tətbiq etmir. Profili dəyişdikdən sonra instansı yenidən başladın, çünki faylı yenidən oxuyan budur.

Eyni tunelə ikinci menecer qoymayın

NetworkManager və OpenVPN 3 sessiya menecerləri öz bağlantı vəziyyətlərinə sahibdir və onlardan birinin yanında systemd instansı eyni tunelə iki sahib qoyur. Simptom bir neçə saniyə sonra əvəzlənən tunel və ya dayanmaqdan imtina edən tuneldir. Distrofunuzun masaüstü üçün sənədləşdirdiyi meneceri seçin və serverdə systemd-ni qəsdən istifadə edin.

İnstans başlatmazdan əvvəl mövcud sahibi yoxlayın. Masaüstü appleti bağlantını göstərəndə başlatdığınız instans onu tamamlamaq əvəzinə onunla rəqabət edir. Hər ikisini işlədib sıranın qalacağına ümid etmək əvəzinə istifadə etmədiyiniz meneceri söndürün. Bu toqquşma həm də tunelin qurulub sonra heç başlatmadığınız proses tərəfindən dağıdıldığı jurnalları izah edir.

Orijinal suala instans adı, onun oxuduğu fayl və uğursuz olan jurnal sətri ilə cavab verin. OpenVPN-in systemd inteqrasiya qeydləri şablon düzənini və instans adının həll etdiyi fayl uyğunluğunu izah edir.

Əlaqəli məqalələr