Xidmətiniz OpenVPN heç işə düşməmişdən əvvəl uğursuz olur və xəta heç vaxt qurmağınız olmayan bir mount vahidindən danışır. Əlamət budur: systemd bütün tranzaksiyanı rədd edir, çünki kök mount vahidi maskalanıb və VPN profiliniz hələ oxunmayıb. Adi səbəb runtime vahid qovluğunda qalmış fayldır, pozulmuş fstab və ya çatışmayan sertifikat deyil. Əvvəlcə faylı yoxlayın, çünki onu istisna etmək ən ucuz izahdır.

Xəta profilinizi deyil, kök mount-u göstərir

systemd kök mount vahidini özü kernelin mount məlumatından yaradır və vahidi -.mount adlandırır, çünki tire kök yolunu bildirir. Bu vahid adətən yalnız yaddaşda mövcuddur və arxasında fayl yoxdur. Xəta onun maskalandığını deyirsə, kimsə systemd-nin yükləyəcəyi yerə vahid faylı qoyub və o faylı /dev/null-ə yönəldib. Maska real vəziyyətdir, mesajdakı yazı səhvi deyil.

Instansiya vahidi uğursuz olur, çünki onun iş qrafiki sıralama və öz mount tələbləri ilə kök mount-a çatır. Tranzaksiya OpenVPN ikili faylı icra olunmadan rədd edilir, buna görə müştəri konfiqurasiyasında heç nə səbəb ola bilməz. Bu səbəbdən profil, sertifikat və ya etimad məlumatlarını dəyişmək bu konkret nasazlığa təsir etmir.

OpenVPN-i sazlamadan əvvəl runtime qovluğunu yoxlayın

Runtime vahid qovluğunda məhz bu adda fayl axtarın, sonra systemd-dən vahidin nə olduğunu soruşun. Hər iki cavab sürətlidir və birlikdə təsadüfi faylı əsl mount problemindən ayırır.

ls -l /run/systemd/system/-.mount
systemctl status -.mount
systemctl list-unit-files --state=masked | grep mount

Normal maşında belə fayl yoxdur və maskalanmış siyahıda kök mount yoxdur. Birinci əmr /dev/null-ə simvolik keçid çap edirsə, diaqnoz qətidir. Eyni qovluqda eyni alətlə yaradılmış tmp.mount maskası da ola bilər və bu, başqa ad altında eyni sinif nasazlıq yaradır. Yalnız xətdəki ada deyil, bütün qovluğa baxın.

ls -la /run/systemd/system/*.mount

Qovluq təmizdirsə və vahid hələ də maskalanıbsa, maska axtarış yolunun başqa yerindədir və systemctl cat -.mount hansı faylın yükləndiyini göstərəcək.

Faylı silin, yenidən yükləyin və yenidən başladın

Runtime faylını silmək və meneceri yenidən yükləmək kifayətdir və bu, paketdən gələn heç bir şeyə toxunmur. Başlamazdan əvvəl yenidən yükləyin, çünki systemd qovluğu yenidən oxuyana qədər yüklənmiş vahid vəziyyətini saxlayır.

sudo rm -f /run/systemd/system/-.mount /run/systemd/system/tmp.mount
sudo systemctl daemon-reload
systemctl status -.mount
sudo systemctl start [email protected]

Sonra düzəlişin işlədiyini güman etmək əvəzinə xidmətin öz jurnalını oxuyun. Təmiz başlama yalnız systemd-nin vahidi qəbul etdiyini sübut edir; müştəri hələ də çatışmayan profil, əlçatmaz həmkar və ya doğrulamayan sertifikat səbəbindən ölə bilər. Bunlar maskalanmış vahidin arxasında gizlənmiş adi OpenVPN problemləridir. Hansı profilin yükləndiyini və tunelin həqiqətən qurulub-qurulmadığını qeyd edir. Vahid başlayır və tunel başlamırsa, başqa bir problemə keçmisiniz, bu da irəliləyişdir.

journalctl -u [email protected] -b --no-pager

/run müvəqqəti fayl sistemi olduğu üçün yenidən başlatma faylı da təmizləyir. Bu, yenidən başlatmanı faydalı test edir: xidmət yenidən başlatmadan sonra işləyir və növbəti yerləşdirmədən sonra yenidən uğursuz olursa, fayl image-ə daxil edilir.

Onun image-dən geri qayıtmasının qarşısını alın

Qurulma zamanı mount vahidlərini maskalayan konteyner və ya virtual maşın şablonu bu maskanı hər klona daşıyacaq. Sonra fayl sistemi lazım olan nə varsa pozulur və mesaj gəldiyi image-i deyil, mount-u günahlandırır. Bir işləyən instansiyanın içində düzəltmək problemi növbəti instansiya yaradılana qədər gizlədir.

Qurma kontekstində fayl adını və onu yaradan əmri axtarın, sonra maskanı şablondan silin və yenidən qurun. Maska qurma zamanı həqiqətən lazımdırsa, onu qurmanı bitirən eyni layda silin ki, göndərilən image təmiz başlasın. Əl ilə təmir etdiyiniz maşında deyil, təzə klonda yoxlayın. Image-in dəyişdiyini sübut edən yeganə test budur.

Yadda saxlamağa dəyər simptom xəta ilə konfiqurasiya etdiyiniz şey arasındakı uyğunsuzluqdur. systemd VPN müştərisini başladarkən mount-dan şikayət edirsə, xidmət adını oxumazdan əvvəl mesajdakı vahid adını oxuyun.

Əlaqəli məqalələr