OpenVPN: ачаалах үед локал холболт бүтэлгүйтэх — хүлээх эсвэл дахин оролдох
Локал хаяг хараахан босоогүй үед OpenVPN холбогдож чадахгүй. Хязгаарлагдмал хүлээлтийг дахин эхлүүлэх бодлоготой харьцуулж, network-online.target яагаад баталгаа биш болохыг үзээрэй.
Ачаалах үед ажиллахгүй байгаа OpenVPN серверийн хувьд хоёр шийдэл санал болгодог: хаягийг хүлээх эсвэл холболт амжилттай болтол үйлчилгээг дахин оролдуулах. Хоёулаа ижил шинж тэмдгийг өөр бүтэлгүйтлийн зан төлөвөөр шийддэг. Хүлээлт нь тодорхой урьдчилсан нөхцөлийг кодчилж, тэр байхгүй үед чанга бүтэлгүйтдэг; дахин оролдлого нь нөхцөлийг нууж, оролдсоор байдаг. Таны нэгжид аль нь хамаарах нь тухайн хаяг нь зохион бүтээсэн хамаарал уу, эсвэл цаг хугацааны санамсаргүй тохиол уу гэдгээс хамаарна.
Хоёулаа тогтмол унтахаас дээр, учир нь унтах нь юу ч хүлээхгүй, юу хүлээж байснаа ч мэдэгдэхгүй.
local сонголт үнэхээр юу шаарддаг вэ
local нь демон өөрийн socket-ийг холбодог хаягийг нэрлэдэг бөгөөд хараахан байхгүй хаяг руу холбогдох нь хүссэн хаягийн тухай алдаатайгаар даруй бүтэлгүйтдэг. Сонголт байхгүй үед демон бүх хаяг дээр сонсдог, тиймээс интерфэйс нь хараахан босоогүй машин дээр ч ижил профайл ажилладаг: таны нэрлэсэн ганц хаяг дээр биш, хаа сайгүй сонсож байгаа юм. Энэ ялгаа нь бүх бүтэлгүйтэл бөгөөд дахин ачаалах хүртэл үл үзэгдэнэ.
Шаардлага нь интерфэйс ерөнхий утгаар боссон байх албагүй. Хаяг нь холбогдох мөчид зөв интерфэйст оноогдсон байх ёстой бөгөөд энэ нь мөн демоноос хожим үүсгэх туннель биш, суурь интерфэйс байх ёстой. Нэвтрэснээс хойш хэдэн минутын дараа хийсэн шалгалт ачаалах дарааллын талаар юу ч батлахгүй.
Хаягийг хүлээх эсвэл холболтыг дахин оролдох
Хүлээлт гэдэг нь хаяг гарч иртэл асуулт тавьдаг ExecStartPre бөгөөд хязгаарлагдмал оролдлогын тоо, хугацаа дуусахад тэгээс ялгаатай гаралттай. Дахин оролдох гэдэг нь үндсэн процессыг бүтэлгүйтэхэд орхиж, үйлчилгээний менежерээс түүнийг дахин эхлүүлэхийг хүсэх, жишээ нь Restart=on-failure RestartSec=5-тай хамт. Эхнийх нь дутуу урьдчилсан нөхцөлийг бүтэлгүйтсэн нэгж гэж мэдэгддэг бол хоёр дахь нь эцэстээ зогсдог дахин эхлүүлэлтийн цуврал гэж мэдэгддэг; энэ нь журналд чанга боловч таамаглах боломжгүй шалтгаанаар хаяг оройтож ирэхэд тэсвэрлэдэг.
Хаяг нь зохион бүтээсэн хамаарал бол хүлээлтийг, хаяг нь ихэвчлэн гарч ирдэг ч цаг нь хувьсдаг бол дахин оролдлогыг илүүд үзээрэй. Хоёуланг хослуулах нь үндэслэлтэй: хязгаарлагдмал хүлээлт нийтлэг тохиолдлыг, дахин эхлүүлэх бодлого онцгой тохиолдлыг хамарна. Хоёулаа мөнхөд ажиллах ёсгүй, учир нь хязгааргүй дахин оролддог нэгж буруу тохиргоог мэдэгдэхийн оронд нуудаг.
Яагаад network-online.target хангалтгүй вэ
network-online.target идэвхтэй сүлжээний хэрэгжүүлэлт online гэж ойлгодог зүйлийг амладаг, үүнээс илүүгүй. systemd-networkd-ийн хувьд systemd-networkd-wait-online энэ зорилгод хэзээ хүрэхийг шийддэг бөгөөд түүний өгөгдмөл online ойлголт таны тодорхой хаяг үүсэхээс өмнө хангагдаж болно. NetworkManager-ийн дор wait-online үйлчилгээ өөрийн дүрмийг хэрэглэдэг. Зорилгын дараа эрэмбэлэх нь эрүүл суурь бөгөөд нэг хаяг, DNS хариу эсвэл алсын түнш бэлэн гэсэн баталгаа биш.
Мөн адил үндэслэл ердийн хувилбаруудыг үгүйсгэдэг. Ажлын ширээний автоматаар эхлүүлэх бичлэг нь сервер дээр хэзээ ч нээгдэхгүй байж болох хэрэглэгчийн сессийг хүлээдэг, хоцрогдсон cron команд нь гарч ирнэ гэж найдаж байсан нөөцийг нэрлэхгүйгээр өнгөрсөн цагийг нэмдэг. Хоёулаа сар хэдэн сар амжилттай харагдаад, дараа нь чухал болсон цорын ганц ачаалал дээр бүтэлгүйтэж болно.
Хүйтэн ачааллын дараа холболтыг шалгаарай
Үйлчилгээг дахин эхлүүлэхээр биш, жинхэнэ хүйтэн ачааллаар шалгаарай, учир нь дахин эхлүүлэлт нь ачаалах дарааллын үүсгэх ёстой байсан хаягийг өвлөдөг. Ачааллын дараа ss -lntp эсвэл ss -lunp сонсогч бүр үнэхээр аль локал хаягт холбогдсоныг харуулж, journalctl -b -u openvpn-server@server эхний оролдлого бүтэлгүйтсэн эсэхийг харуулна. Холбогдсон хаягийг профайл дахь хаягтай харьцуулж, дараа нь сүлжээ дахин холбогдсоны дараа харьцуулалтыг давтана.
Хэрэв профайл хэзээ ч тогтмол хаяг шаардаагүй бол local-г хасах нь хууль ёсны хялбарчлал боловч үүнийг алдаа засах дадал биш, аюулгүй байдлын шийдвэр болго.
Сонсогчийг өргөжүүлэх нь хэн түүнд хүрч чадахыг өөрчилдөг тул энэ өөрчлөлтийг түүнийг хязгаарлах ёстой байсан firewall бодлоготой хослуулаарай. Интерфэйс бүр дээр найдвартай ажилладаг үйлчилгээ анхны асуудлыг шийдээгүй; тэр асуудлыг сүлжээний захад шилжүүлсэн.