د OpenVPN هغه سرور لپاره چې د بوټ پر مهال نه پیلېږي، دوه حلونه وړاندې کېږي: پتې ته انتظار وکړئ، یا اجازه ورکړئ چې خدمت بیا هڅه وکړي تر څو چې بند بریالی شي. دواړه ورته نښه په بېلابېلو ناکامۍ چلندونو سره حل کوي. انتظار یو ځانګړی مخکینی شرط کوډ کوي او کله چې هغه نه وي په لوړ غږ ناکامېږي؛ بیا هڅه شرط پټوي او هڅه ته دوام ورکوي. کوم یو چې ستاسو په واحد کې ځای لري، په دې پورې اړه لري چې هغه پته ډیزاین شوې انحصار دی که د وخت تصادف.

دواړه له ثابت خوب څخه غوره دي، چې نه د هیچا انتظار کوي او نه هم څرګندوي چې د څه انتظار یې کاوه.

د local اختیار په رښتیا څه غواړي

local هغه پته نوموي چې ډیمون خپل ساکټ ورباندې بندوي، او هغې پتې ته بندول چې لا نه شته، سمدلاسه د غوښتل شوې پتې په اړه د تېروتنې سره ناکامېږي. کله چې اختیار نه وي، ډیمون په ټولو پتو اورېدل کوي، نو ځکه هماغه پروفایل په هغه ماشین کې کار کوي چې انټرفیس یې لا نه دی پورته شوی: دا هر چېرې اورېدل کوي نه یوازې په هغه یوه پته چې تاسو نومولې ده. همدا توپیر ټوله ناکامي ده، او تر بیا پیلولو پورې پټه پاتې کېږي.

غوښتنه دا نه ده چې انټرفیس په یوه عمومي معنا پورته وي. پته باید د بندولو په لحظه کې سم انټرفیس ته ورکړل شوې وي، او باید بنسټیز انټرفیس وي نه هغه تونل چې هماغه ډیمون به یې وروسته جوړ کړي. د ننوتلو څو دقیقې وروسته شوې کتنه د بوټ ترتیب په اړه هېڅ نه ثابتوي.

پتې ته انتظار یا د بندولو بیا هڅه

انتظار یو 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 لرې کول یو قانوني ساده کول دي، خو دا د ستونزو حل کولو عادت نه، بلکې د امنیت پریکړه جوړه کړئ.

د اورېدونکي پراخول بدلوي چې څوک ورته رسېدلی شي، نو هغه بدلون د هغې فایر وال پالیسۍ سره یوځای کړئ چې باید محدود یې کړې وای. هغه خدمت چې په هر انټرفیس کې په باوري ډول پیلېږي اصلي ستونزه نه ده حل کړې؛ دا ستونزه د شبکې څنډې ته لېږدولې ده.

اړوندې مقالې