OpenVPN up hadisəsində xidmətin yenidən başladılması: qarmaqlar tun0.device-dan üstündür
Cihaz vahidi interfeysi izləyir, bağlantını yox. Xidmətin ehtiyac duyduğu şərt üçün up və ya route-up seçin, sonra bloklamayan yenidən başlatma göndərin.
Asılı xidməti tun0.device ilə bağlamaq tunelə abunə olmaq kimi görünür, amma belə deyil. Cihaz vahidi interfeysin mövcudluğunu əks etdirir və bu, uğursuz bağlantı və ondan sonrakı yenidən qoşulma boyunca doğru qala bilər. Sonra xidmət yanlış anda hərəkət edir və ya heç etmir, interfeysin bu arada yox olub-olmamasından asılı olaraq. Həqiqətən əhəmiyyət verdiyiniz hadisəni təsvir edən qarmaq OpenVPN-in çağırdığı qarmaqdır, systemd-in çıxardığı deyil.
Tetikləyicini seçməzdən əvvəl xidmətin hansı şərtə ehtiyacı olduğunu müəyyənləşdirin, çünki üç namizəd bir-birini əvəz etmir.
Cihaz vahidi əslində nəyi izləyir
systemd cihaz vahidini şəbəkə interfeysinə nüvənin baxışından yaradır, ona görə tun0.device interfeys görünəndə aktiv olur və silinəndə qeyri-aktiv olur. persist-tun ilə yumşaq yenidən başlatma interfeysi yerində saxlayır, ona görə vahid heç vaxt dalğalanmır və ona bağlı heç nə işə düşmür. Davamlılıq olmadan da vahid marşrutlar, DNS və ya uzaq tərəfin cavab verib-vermədiyi barədə heç nə demir.
Bu, onu 'VPN hazırdır' üçün zəif vəkil edir. Yalnız yerli ünvana ehtiyac duyan dinləyici interfeysin mövcudluğu ilə kifayətlənə bilər, uzaq şəbəkədəki tətbiqi çağıran xidmət isə marşrutlara və əlaqə imkanına ehtiyac duyur ki, cihaz vahidi bunu ifadə edə bilmir.
up, route-up və up-restart fərqli şeylər deməkdir
up TUN/TAP cihazı açıldıqdan və interfeys konfiqurasiya edildikdən sonra işləyir ki, bu, təyin edilmiş ünvanı bağlayan dinləyici üçün düzgün andır. route-up marşrutlar quraşdırıldıqdan sonra, konfiqurasiya edilmiş marşrut gecikməsinə tabi olaraq işləyir və marşrut mərhələsinin tamamlanmasını tələb edən işlərə uyğundur. Heç biri uzaq tətbiqin cavab verdiyini sübut etmir. Onların arasında seçim xidmətin nəyə ehtiyacı olduğu haqqında sualdır, hansı qarmağın daha bitmiş səslənməsi deyil.
persist-tun ilə yenidən başlatmalar cihazı təkrar istifadə edir, ona görə up-restart qoyulmadıqca up yenidən işləmir. Bu seçim up skriptini sənədləşdirilmiş yenidən başlatma həyat dövrü üçün aktivləşdirir və onun mühiti ilk başlatma ilə müqayisədə azaldılmışdır. Tam mühiti fərz edən skript ilk bağlantıda işləyir və növbətisində uğursuz olur.
Fəaliyyəti gözləmədən göndərin
systemctl restart çağıran qarmaq sifarişi tuneli gözləyən vahidə qarşı çıxılmaz vəziyyətə düşə bilər. systemctl --no-block try-restart vpn-dependent.service işi növbəyə qoyur və qayıdır ki, bu da qarmağın reaksiya verdiyi bağlantını bloklamasının qarşısını alır. try-restart yalnız işləyən vahidə təsir edir, restart isə qeyri-aktiv vahidi də başladır; vərdişə görə deyil, qəsdən seçin.
Növbəyə qoymaq yoxlama deyil. İş qəbul edilən kimi qarmaq uğur qaytarır, ona görə yoxlama hədəf vahidin jurnalında və ya onun faktiki dinləyici vəziyyətində baş verməlidir.
Yenidən başlatma siyasəti vahiddə yaşayır, qarmaqda deyil
RemainAfterExit=yes olan oneshot vahidi əmri bitdikdən sonra aktiv qalır və ikinci başlatma sorğusu heç nə etmir, çünki systemd onu artıq başlamış hesab edir. Bu, ətrafında dizayn aparılmalı olan xüsusiyyətdir, təkrar başlatma çağırışları ilə yan keçiləcək qüsur deyil. Fəaliyyət hər bağlantı üçün işləməlidirsə, vahidə buna imkan verən forma lazımdır.
After= vahidləri sıralayır, BindsTo= isə ömürləri bağlayır, amma heç biri 'VPN hər qoşulanda bunu yenidən başlat' demək deyil. Tunelə bağlı vahid tunel dayananda dayanır; tunel qayıdanda özünü yenidən başlatmır, məgər nəsə onu yenidən başlatmasa.
Bir deyil, üç yenidən qoşulmanı sınaqdan keçirin
Soyuq yükləmə, tam müştəri yenidən başlatması və yumşaq yenidən qoşulma hər biri fərqli yol sınayır. Yumşaq yenidən qoşulma itkin up-restart, azaldılmış mühit və ya heç vaxt qeyri-aktiv olmayan cihaz vahidini ortaya çıxaran haldır. Üçünü də işə salın və hər iki istiqaməti təsdiqləyin: xidmət tunel qalxanda hərəkət edir və Wi-Fi rouminqi kimi əlaqəsiz keçid dəyişikliklərində yenidən başlamır.
Asılı xidmət öz idarəetmə girişinizi daşıyırsa, müstəqil bərpa yolu saxlayın. Bağlandığınız şeyi yenidən başladan qarmaq sizi kilidə sala bilən dəyişiklikdir.