د یوې تړلې خدمت tun0.device سره نښلول د تونل ګډون کولو په څېر ښکاري، او داسې نه ده. د وسیلې واحد د انٹرفیس شتون ښیي، کوم چې د ناکامې اړیکې او وروسته له هغې بیا نښلولو په اوږدو کې سم پاتې کېدای شي. بیا خدمت په غلط وخت کې عمل کوي، یا هیڅکله، د دې پورې اړه لري چې انٹرفیس په منځ کې ورک شوی و که نه. هغه قلاب چې هغه پېښه بیانوي چې تاسو واقعاً ورته پام لرئ هغه دی چې OpenVPN یې غواړي، نه هغه چې systemd یې اټکل کوي.

د ټریګر په ټاکلو دمخه پریکړه وکړئ چې خدمت ته کوم شرط اړین دی، ځکه چې درې نوماندان د یو بل بدلون وړ نه دي.

د وسیلې واحد واقعاً څه تعقیبوي

systemd د شبکې انٹرفیس په اړه د کرنل له نظره د وسیلې واحد جوړوي، نو tun0.device هغه وخت فعالېږي کله چې انٹرفیس ښکاره شي او غیر فعالېږي کله چې لرې شي. د persist-tun سره، نرم بیا پیلول انٹرفیس په خپل ځای کې ساتي، نو واحد هیڅکله فلپ نه کوي او له هغې سره تړلی هیڅ شی نه فعالېږي. حتی پرته له دوام څخه، واحد د لارو، DNS یا د دې په اړه چې لرې پای ځواب ورکوي که نه، هیڅ نه وایي.

دا هغه 'VPN چمتو دی' لپاره بدیل بدلوي. هغه اورېدونکی چې یوازې ځایي پته ته اړتیا لري کېدای شي د انٹرفیس په شتون قناعت وکړي، پداسې حال کې چې هغه خدمت چې په لرې شبکه کې اپلیکیشن غواړي لارو او رسیدو ته اړتیا لري، کوم چې د وسیلې واحد نشي ښودلی.

up، route-up او up-restart مختلف معناوې لري

up وروسته له دې چې د TUN/TAP وسیله پرانیستل شي او انٹرفیس تنظیم شي چلیږي، کوم چې د ټاکل شوې پتې تړلو اورېدونکي لپاره سم وخت دی. route-up وروسته له دې چې لارې نصب شي، د هر تنظیم شوي لار ځنډ تابع، چلیږي، او هغه کار لپاره مناسب دی چې د لار مرحلې بشپړیدو ته اړتیا لري. دواړه نه ثابتوي چې لرې اپلیکیشن ځواب ورکوي. د دوی ترمنځ انتخاب د دې په اړه پوښتنه ده چې خدمت ته څه اړین دي، نه د دې چې کوم قلاب ډیر بشپړ ښکاري.

د persist-tun سره، بیا پیلول وسیله بیا کاروي، نو up بیا نه چلیږي مګر دا چې up-restart تنظیم شوی وي. هغه انتخاب د مستند شوي بیا پیلولو ژوند دورې لپاره up سکریپټ فعالوي، او د هغې چاپېریال د لومړي پیل په پرتله کم شوی دی. هغه سکریپټ چې بشپړ چاپېریال فرض کوي په لومړۍ اړیکه کې کار کوي او په بله کې ناکامېږي.

عمل د هغې د انتظار پرته واستوئ

هغه قلاب چې systemctl restart په همغږي ډول غواړي کېدای شي د هغه واحد سره بن بست ته ورسېږي چې ترتیب یې د تونل انتظار کوي. systemctl --no-block try-restart vpn-dependent.service کار په قطار کې اړوي او بیرته راځي، کوم چې قلاب له دې منع کوي چې هغه اړیکه بلاک کړي چې هغه ورته غبرګون ښود. try-restart یوازې په روان واحد عمل کوي، پداسې حال کې چې restart غیر فعال واحد هم پیلوي؛ په قصد وټاکئ، نه په عادت.

په قطار کې اړول تصدیق نه دی. کار په منلو سره قلاب بریالیتوب بیرته راګرځوي، نو څېړنه باید د هدف واحد په ژورنال کې یا د هغې په ریښتیني اورېدونکي حالت کې وشي.

د بیا پیلولو تګلاره په واحد کې ژوند کوي، نه په قلاب کې

د RemainAfterExit=yes سره oneshot واحد وروسته له دې چې حکم یې ووځي فعال پاتې کېږي، او دوهم د پیل غوښتنه هیڅ نه کوي ځکه چې systemd هغه دمخه پیل شوی ګڼي. دا هغه ځانګړتیا ده چې باید د هغې شاوخوا ډیزاین وشي، نه هغه نیمګړتیا چې په تکراري پیل غږونو څخه تیرېږي. که عمل باید د هرې اړیکې لپاره چل شي، واحد ته داسې بڼه ته اړتیا ده چې اجازه یې ورکړي.

After= واحدونه ترتیبوي، او BindsTo= ژوندونه تړي، مګر هیڅ یو یې 'هرکله چې VPN بیا ونښلول شي دا بیا پیل کړه' نه معنی لري. د تونل سره تړلی واحد هغه وخت بندېږي کله چې تونل بند شي؛ دا پخپله بیا نه پیلېږي کله چې تونل بیرته راشي، مګر دا چې یو څه یې بیا پیل کړي.

یو نه، درې بیا نښلول وازموئ

سوړ پیل، د کلینټ بشپړ بیا پیلول او نرم بیا نښلول هر یو بېل لار تمرینوي. نرم بیا نښلول هغه دی چې ورک up-restart، کم شوی چاپېریال یا هغه وسیله واحد چې هیڅکله غیر فعاله نه شوه افشا کوي. درې واړه وچلوئ او دواړه لوري تایید کړئ: خدمت هغه وخت عمل کوي کله چې تونل پورته راشي، او د Wi-Fi رومینګ په څېر ناتړلو لینک بدلونونو کې بیا نه پیلېږي.

کله چې تړلې خدمت ستاسو خپل اداري لاسرسی وړي، یوه خپلواکه بیا رغونه لار وساتئ. هغه قلاب چې هغه څه بیا پیلوي چې تاسو د هغې له لارې نښلول شوي یاست، هغه بدلون دی چې تاسو بهر بندولی شي.

اړوندې مقالې