OpenVPN serverile, mis käivitamisel ei käivitu, pakutakse kahte lahendust: oodata aadressi või lasta teenusel uuesti proovida, kuni sidumine õnnestub. Mõlemad käsitlevad sama sümptomit erineva tõrkekäitumisega. Ootamine kodeerib konkreetse eeltingimuse ja ebaõnnestub valjult, kui see puudub; kordamine peidab eeltingimuse ja proovib edasi. Milline neist teie üksusesse kuulub, sõltub sellest, kas see aadress on kavandatud sõltuvus või ajastuse juhus.

Mõlemad on paremad kui fikseeritud magamine, mis ei oota millegi järele ega teata, mida ta ootas.

Mida valik local tegelikult nõuab

local nimetab aadressi, millega deemon oma sokli seob, ja veel olematu aadressiga sidumine ebaõnnestub kohe nõutud aadressi käsitleva veaga. Kui valik puudub, kuulab deemon kõigil aadressidel, mistõttu sama profiil töötab masinas, mille liides pole veel üles tõusnud: ta kuulab kõikjal, mitte ühel aadressil, mille te nimetasite. See erinevus ongi kogu tõrge ja jääb nähtamatuks kuni taaskäivituseni.

Nõue ei ole see, et liides oleks üldises mõttes üleval. Aadress peab olema sidumise hetkel õigele liidesele määratud ja see peab olema alusliides, mitte tunnel, mille sama deemon hiljem looks. Mõni minut pärast sisselogimist tehtud kontroll ei tõesta käivitumisjärjekorra kohta midagi.

Aadressi ootamine versus sidumise kordamine

Ootamine tähendab ExecStartPre, mis küsitleb, kuni aadress ilmub, piiratud arvu katsetega ja nullist erineva väljumisega, kui aeg saab otsa. Kordamine tähendab põhiprotsessi ebaõnnestumise lubamist ja teenusehalduri käest selle uuesti käivitamise palumist, näiteks Restart=on-failure koos RestartSec=5. Esimene teatab puuduvast eeltingimusest ebaõnnestunud üksusena, teine aga teatab sellest kui taaskäivituste seeriast, mis lõpuks lakkab; see on logis lärmakam, kuid talub aadressi, mis saabub hilja põhjustel, mida te ei suuda ette näha.

Eelistage ootamist, kui aadress on kavandatud sõltuvus, ja kordamist, kui aadress tavaliselt ilmub, kuid selle ajastus varieerub. Nende kombineerimine on mõistlik: piiratud ootamine katab tavajuhu ja taaskäivituse poliitika erandi. Kumbki ei tohiks töötada igavesti, sest lõputult kordav üksus peidab vale seadistuse, selle asemel et sellest teatada.

Miks network-online.target ei ole piisav

network-online.target lubab seda, mida aktiivne võrgurakendus online'i all mõistab, ja mitte rohkem. systemd-networkd korral otsustab systemd-networkd-wait-online, millal see sihtmärk saavutatakse, ja selle vaikimisi online'i mõiste võib olla täidetud enne, kui teie konkreetne aadress olemas on. NetworkManageri all rakendab wait-online teenus oma reegleid. Sihtmärgi järel järjestamine on korralik baasjoon, mitte garantii, et üks aadress, DNS-vastus või kaugpartner on valmis.

Sama arutluskäik välistab tavalised alternatiivid. Töölaua autostart-kirje ootab kasutajasesiooni, mis serveris ei pruugi kunagi avaneda, ja viivitatud cron-käsk lisab möödunud aega ilma nimetamata ressurssi, mille ilmumist ta lootis. Mõlemad võivad kuude kaupa edukad näida ja seejärel ebaõnnestuda sellel ainsal käivitusel, mis loeb.

Kontrollige sidumist pärast külmkäivitust

Kontrollige tõelise külmkäivitusega, mitte teenuse taaskäivitusega, sest taaskäivitus pärib aadressi, mille käivitusjärjekord pidi looma. Pärast käivitust näitab ss -lntp või ss -lunp kohalikku aadressi, millega iga kuulaja tegelikult sidus, ja journalctl -b -u openvpn-server@server näitab, kas esimene katse ebaõnnestus. Võrrelge seotud aadressi profiilis olevaga ja korrake võrdlust pärast võrgu taasühendamist.

Kui profiil ei vajanud kunagi fikseeritud aadressi, on local eemaldamine õiguspärane lihtsustus, kuid tehke sellest turvavalik, mitte tõrkeotsingu harjumus.

Kuulaja laiendamine muudab, kes sellele ligi pääseb, seega siduge see muudatus tulemüüri poliitikaga, mis oleks pidanud seda piirama. Teenus, mis käivitub usaldusväärselt igal liidesel, ei ole algset probleemi lahendanud; see on probleemi võrgu serva viinud.

Seotud artiklid