Për një server OpenVPN që nuk niset në fillim të sistemit ofrohen dy zgjidhje: të pritet adresa, ose shërbimi të riprovojë derisa lidhja të ketë sukses. Të dyja trajtojnë të njëjtin simptom, por me sjellje të ndryshme në dështim. Pritja kodon një parakusht të caktuar dhe dështon me zë kur ai mungon; riprovimi e fsheh parakushtin dhe vazhdon të provojë. Cila prej tyre i përket njësisë tuaj varet nga fakti nëse adresa është varësi e projektuar apo rastësi e kohës.

Të dyja janë më mirë se një gjumë fiks, i cili as nuk pret gjë, as nuk raporton se çfarë priste.

Çfarë kërkon në të vërtetë opsioni local

local përcakton adresën në të cilën daemon-i lidh socket-in e tij, dhe lidhja me një adresë që ende nuk ekziston dështon menjëherë me një gabim për adresën e kërkuar. Kur opsioni mungon, daemon-i dëgjon në të gjitha adresat, prandaj i njëjti profil funksionon në një makinë ndërfaqja e së cilës nuk është ngritur: po dëgjon kudo në vend të adresës së vetme që emërtuat. Kjo diferencë është e gjithë dështimi dhe mbetet e padukshme deri në një rinisje.

Kërkesa nuk është që ndërfaqja të jetë aktive në ndonjë kuptim të përgjithshëm. Adresa duhet t'i caktohet ndërfaqes së duhur në çastin e lidhjes dhe duhet të jetë ndërfaqja themelore, jo një tunel që i njëjti daemon do të krijonte më vonë. Një kontroll i kryer minuta pas hyrjes nuk provon asgjë për sekuencën e nisjes.

Pritja për adresën kundrejt riprovimit të lidhjes

Pritja do të thotë një ExecStartPre që vëzhgon derisa adresa të shfaqet, me një numër të kufizuar përpjekjesh dhe një dalje jozero kur koha mbaron. Riprovimi do të thotë të lësh procesin kryesor të dështojë dhe t'i kërkosh menaxherit të shërbimeve ta nisë përsëri, për shembull Restart=on-failure me RestartSec=5. I pari e raporton parakushtin që mungon si njësi të dështuar, ndërsa i dyti e raporton si një varg rinisjesh që ndalet përfundimisht; në journal është më i zhurmshëm, por i përballon adresat që vijnë vonë për arsye që nuk mund t'i parashikoni.

Preferoni pritjen kur adresa është varësi e projektuar, dhe preferoni riprovimin kur adresa zakonisht shfaqet, por koha e saj ndryshon. Kombinimi i tyre është i arsyeshëm: një pritje e kufizuar mbulon rastin e zakonshëm dhe një politikë rinisjeje mbulon rastin e rrallë. Asnjëra nuk duhet të ekzekutohet përgjithmonë, sepse një njësi që riprovon pa kufi e fsheh një konfigurim të gabuar në vend që ta raportojë.

Pse network-online.target nuk mjafton

network-online.target premton vetëm atë që zbatimi aktiv i rrjetit kupton me online, dhe asgjë më shumë. Me systemd-networkd, systemd-networkd-wait-online vendos se kur arrihet ai objektiv, dhe kuptimi i tij i parazgjedhur për online mund të plotësohet përpara se adresa juaj specifike të ekzistojë. Nën NetworkManager, shërbimi wait-online zbaton rregullat e veta. Renditja pas objektivit është një bazë e shëndoshë, jo garanci se një adresë, një përgjigje DNS ose një peer i largët është gati.

I njëjti arsyetim përjashton alternativat e zakonshme. Një zë autostart në desktop pret një sesion përdoruesi që mund të mos hapet kurrë në një server, dhe një komandë cron e vonuar shton kohë të kaluar pa emërtuar burimin që shpresohej të shfaqej. Të dyja mund të duken të suksesshme për muaj të tërë dhe pastaj të dështojnë në nisjen e vetme që ka rëndësi.

Kontrolloni lidhjen pas një nisjeje të ftohtë

Verifikojeni me një nisje të vërtetë të ftohtë, jo me rinisje të shërbimit, sepse një rinisje trashëgon një adresë që sekuenca e nisjes duhej të krijonte. Pas nisjes, ss -lntp ose ss -lunp tregon adresën lokale që çdo dëgjues lidhi në të vërtetë, dhe journalctl -b -u openvpn-server@server tregon nëse përpjekja e parë dështoi. Krahasoni adresën e lidhur me atë në profil dhe përsëritni krahasimin pas një rilidhjeje të rrjetit.

Nëse profili nuk ka pasur kurrë nevojë për një adresë fikse, heqja e local është thjeshtim i ligjshëm, por bëjeni një vendim sigurie dhe jo një zakon diagnostikimi.

Zgjerimi i dëgjuesit ndryshon se kush mund ta arrijë, prandaj shoqërojeni këtë ndryshim me politikën e firewall-it që duhej ta kufizonte. Një shërbim që niset me besueshmëri në çdo ndërfaqe nuk e ka zgjidhur problemin fillestar; e ka zhvendosur problemin në skajin e rrjetit.

Artikuj të ngjashëm