Noutbuk oyandıqdan sonra OpenVPN niyə sönür?
Yuxu rejimi OpenVPN sessiyasını öldürüb tun0-ı yerində saxlaya bilər. Tuneli yoxlayın, sonra qurğunu deyil, systemd yuxu qarmağından xidməti yenidən başladın.
Maşını yuxu rejiminə salın, oyadın, sonra hər hansı konfiqurasiyaya toxunmazdan əvvəl üç şeyi bu ardıcıllıqla yoxlayın: tun0 hələ də varmı, daxili ünvana gedən marşrut hələ də onu seçirmi və server bu peer-i hələ də siyahıda saxlayırmı. Yuxudan sağ çıxan, amma marşrutun başqa yerə baxdığı qurğu qalıqdır, tunel deyil. Marşrut düzgün olanda və trafik yenə də öləndə, nasazlıq tunelin üstündədir və müştərini yenidən başlatmaq bunu dəyişməyəcək. Yenidən başlatmanı avtomatlaşdırmaq yalnız əl ilə sınaq bu üç halldan hansının olduğunu göstərdikdən sonra məna kəsb edir.
ip -br address show tun0
ip route get 10.20.0.10
journalctl -u openvpn-client@office -b --no-pager | tail -30
Avtomatlaşdırmadan əvvəl oyanmağı təkrar istehsal edin
Yuxu rejimi şifrələnmiş sessiyanı qurğunu silməkdən daha çox bitirir. Tuneli canlı saxlayan UDP axını dayanır, server peer-i sala bilər və müştəri ya bunu görüb yenidən qoşulur, ya da arxasında heç nə olmayan interfeys saxlayır. Interfeys yoxlaması tək başına az şey sübut edir, çünki köhnə qurğu işləyən qurğudan tamamilə eyni görünür paketlər onun üzərindən keçməli olana qədər. Marşrut axtarışını və tuneldən keçən bir real sorğunu işə salın, sonra oyanma anı ətrafındakı jurnalı oxuyun.
Müştəri özü qayıdırsa, qarmaq etibarlılıq yerinə əlavə iş yaradır. Heç vaxt bərpa olunmursa, avtomatlaşdırma dürüst həlldir.
systemd yuxu qarmağı əslində harada yaşayır
Bir çox köhnə bələdçi /etc/pm/sleep.d ünvanını göstərir; bu qovluq pm-utils-ə aiddir və systemd əsaslı yuxu rejimi ona heç vaxt baxmır. systemd qarmaqları /usr/lib/systemd/system-sleep/ və /etc/systemd/system-sleep/ altından oxuyur, əvvəlcə fazanı, sonra əməliyyatı ötürür, yəni pre və post qarmağın budaqlandığı yeganə dəyərlərdir. Yerli nüsxəni paketlənmiş faylı redaktə etmək əvəzinə /etc altında saxlayın və unutmayın ki, skript keçidin ortasında root kimi işləyir, ona görə də tez qayıtmalıdır.
#!/bin/sh
case "$1" in
post)
systemctl --no-block try-restart [email protected]
;;
esac
exit 0
try-restart vahidə yalnız artıq aktiv olduqda toxunur, yəni qəsdən söndürdüyünüz tunel oyanmadan sonra da söndürülmüş qalır. --no-block qarmağın müştəri danışıqlar apararkən gözləməsinin qarşısını alır, bu da şəbəkə hələ qalxmayanda vacibdir. İki bayraq birlikdə bütün oyanma ardıcıllığını tutmaq əvəzinə səssizcə uğursuz olan qarmaq deməkdir. Vahid artıq dayanıbsa, heç nə baş vermir, bu da tam istədiyiniz nəticədir.
Xidməti bərpa edin, tun0-a toxunmayın
tun0 əl ilə aşağı salmaq daemonu artıq sahib olmadığı interfeysə nəzarət edən vəziyyətdə qoyur və növbəti vəziyyət dəyişikliyi çaşdırıcı xətalar yaradır. İnterfeys yerinə xidməti və ya onun bağlantı profilini hədəf alın; əvvəlcə dəqiq vahid adını yoxlayın, çünki distributiv paketləri, OpenVPN 3 və NetworkManager fərqli adlar seçir. NetworkManager profili həmin bağlantı dövrəyə salındıqda qayıdır, yəni systemd vahidi orada hədəf deyil. Mexanizm nə olursa olsun, əl ilə yoxladığınız eyni əməliyyat olmalıdır.
Yenidən başlatma müştərinin qoşularkən göndərdiyi marşrutları yenidən quraşdırır. Oyanmaların çoxu bunu istəyir. Öz yollarınızı əlavə etdiyiniz maşın istəmir, ona görə bərpanın onları qaytardığını fərz etmək yerinə həmin yolları yenidən yoxlayın və növbəti oyanmanın tapa biləcəyi yerdə qeyd edin.
Nəzarət edə bilmədiyiniz vaxtı idarə edin
Simsiz assosiasiya və DHCP çox vaxt qarmaq işlədikdən sonra bitir, yəni serverə yol hələ yoxkən yenidən başlatma uğursuz ola bilər. Həmin ünvan üçün bir az gözləyin, bir dəfə təkrar cəhd edin və nəticəni jurnala yazın.
Ad həlli ayrı bir yarışdır, çünki masaüstü şəbəkə yığını DNS-i tunel artıq qalxdıqdan sonra bərpa edə bilər. Axtarışları işlək marşrutdan çıxarmaq əvəzinə resolvectl query internal.example ilə ayrıca yoxlayın. Düzgün marşrutlaşdıran və heç nə həll etməyən tunel DNS problemidir, qarmaq problemi deyil.
Qarmağın qərarını fazanı, vahid adını və nəticəni jurnala yazmaqla görünən saxlayın. Maşın qeydlərində hansı oyanma sınağını keçirdiyinizi qeyd edin ki, işlək bərpanı şanslı bərpadan ayırmaq mümkün olsun. Xidməti geri gətirən ən az pozucu tədbiri seçin və özü bərpa olunan müştərini buna buraxın. Tam yenidən başlatma davam edən sessiyaları atır, bu da gündə bir neçə dəfə oyanan noutbukda real xərcdir.