د خوب په هوک کې د بیا نښلولو امر کیږدئ او ستونزه حل شوې ښکاري۔ دا یوازې هغه وخت حل کیږي چې هوک د شبکې له موجودیت وروسته چلیږي، د هغې پیژندنې په توګه چې کلاینټ یې پیژني، د هغې لارې له لارې چې کلاینټ واقعیا یې پلي کوي۔ د بیا پیل وروسته ډیری ناکامۍ د دې درېیو څخه یوه ده، او هیڅ یو یې په خپله هوک کې د تېروتنې په توګه نه ښکاري۔ هوک په هر حال بریالیتوب بیرته راګرځوي۔

هغه سکریپټ چې په صفر پای ته رسیږي، تاسو ته د دې په اړه هېڅ نه دي ویلي چې تونل بیرته راغی که نه۔

هوک چلیږي، او بیا څه؟

#!/bin/sh
case "$1" in
  pre)
    vpn-client disconnect
    ;;
  post)
    vpn-client connect
    ;;
esac

هره پیښه هوک دوه ځله غواړي، د لیږد مخکې او وروسته، او د پړاو او پیښې نوم ورته ورکوي۔ دا د root په توګه په لږ تر لږه چاپیریال کې چلیږي، نو مطلقې لارې اړینې دي او د ډیسکټاپ ناستې هېڅ متغیر باید تمه ونه شي۔ دواړه غوښتنې چې ژر بیرته راشي یوازې دا وایي چې سکریپټ چلیږي۔ ایا پروفایل وروسته پورته شو، دا جلا کتنه ده او په لاګ کې خپل شاهد غواړي۔

د پړاو دلیل د ډیزاین برخه وګڼئ۔ د pre په پړاو کې د بیا نښلولو هڅه هغه وخت کیږي چې ماشین ټول له لاسه ورکوي، او نشي کولی بریالي شي۔

Root، لږ تر لږه چاپیریال، غلط کارونکی

که کلاینټ د هر کارونکي لپاره د ننوتلو ټوکن ساتي، هوک د root په توګه چلول دې ته د وړاندې کولو لپاره هېڅ نه پریږدي۔ حالت د هغې پیژندنې لاندې وګورئ چې هوک واقعیا یې کاروي، نه هغه چې تاسو د ډیسکټاپ ټرمینل څخه ازمویلې وه۔ ځینې جوړښتونه د جلا کیدو وروسته یو ډیمون هم پریږدي چې انټرفیس نیسي، نو بیا نښلول په زوړ حالت کې ځای پرځای کیږي، او د پروسې مخکې پاکول دا د ناپاک بندیدو په بیه بحالوي۔ د دواړو چلندونو څخه هېڅ یو هم نه ښکاري که تاسو یوازې خوښه لار وازموئ۔

هوک په مطلقو لارو ولیکئ، دا د root په ملکیت او د اجرا وړ وساتئ، او ولیکئ چې څه یې وکړل۔ پرته له هغه لاګ بل تحقیق له صفره پیل کیږي۔

اتوماتیک نښلول د VPN لار نه ده

NetworkManager دوه فعالولو میکانيزمونه وړاندې کوي: په پروفایل کې د اتوماتیک نښلولو بیرغ، او دوهمني نښلونې چې کله لومړنی پروفایل فعال شي پیل کیږي۔ اصلي وسیلې ډولونه لومړی پلي کوي؛ VPN پلگ انونو تاریخي ډول یوازې دوهم پلي کړی، نو په OpenVPN پروفایل کې د اتوماتیک نښلولو نښه کول ممکن هېڅ اغیزه ونلري۔ دواړه ځانګړنې وګورئ، بیا VPN د Wi-Fi یا Ethernet پروفایل دوهمني په توګه ونښلوئ۔

[Unit]
PartOf=NetworkManager.service
Requires=NetworkManager-wait-online.service
After=NetworkManager-wait-online.service

د systemd واحد لخوا اداره شوی WireGuard انټرفیس د هوک پرځای هغه ډراپ-ان ته اړتیا لري، چې د شبکې آنلاین کیدو وروسته ترتیب شوی وي۔

د شبکې انتظار وکړئ، د یوې حد سره

timer=1
while ! ping -c1 -n -w1 203.0.113.1 >/dev/null; do
  sleep 1; timer=$((timer+1))
  [ $timer -ge 300 ] && exit 0
done
nmcli connection up "work-vpn"

د بیا پیل په وخت کې کیدای شي تونل وغوښتل شي پداسې حال کې چې Wi-Fi لا هم بیا نښلیږي، چې هر ثابت خوب یې اټکل جوړوي۔ د رسیدونکي پتې انتظار وکړئ، بیا پروفایل پورته کړئ، او انتظار محدود کړئ ترڅو هوک د بیا پیل لاره په نامحدود ډول پرانیستې ونه ساتي۔ د عددي شاخص پرځای د پروفایل نوم غوره کړئ، او که سم پروفایل د شبکې له مخې توپیر ولري، راځه چې روغ تونل خپل انتخاب مخکې له مخکې په فایل کې ولیکي۔

د بیا پیل له طوفانونو هم ځان وساتئ، د هڅو په شمیرلو او دریدو سره۔ هغه څارونکی چې هرې ناکامې څیړنې ته ځواب ووایي یوه ګډوډي په لوپ بدلوي۔

یو ځل سیسټم وځنډوئ، بیا په ژورنال کې د هوک خپل تولید ولولئ۔ دا یوازینی ازموینه ده چې ترتیب ثابتوي۔

اړوندې مقالې