سکریپټونه VPN کلاینټونه په هغه پرت پیلوي چې لیکوال ټاکلی، او دا پرت په نادره توګه هغه وي چې کار ورته اړتیا درلوده۔ د عرضه کوونکي د کمانډ کرښه، د عملیاتي سیسټم ډایلر او د موبایل اپ غوښتنه ټول د اړیکې په ژوند کې په بېلابېلو ټکو کې بېرته راځي۔ دوی راز هم په بېلابېله توګه اداره کوي، او دا توپیر ټاکي چې پټنوم په ماشین کې هر کارونکي ته ښکاري که نه۔ د سکریپټ لومړی کرښه لیکلو دمخه پرت وټاکئ۔

پرت 1: د عرضه کوونکي کمانډ کرښه

ډیری ډیسکټاپ کلاینټونه داسې کمانډ کرښه وړاندې کوي چې د پروفایل نوم او، ډېری وختونه، پټنوم اخلي۔ د Cisco زوړ کلاینټ د کارونکي او پټنوم دلیلونو سره connect فعل منلی و؛ macOS جوړ شوی خدمت د networksetup له لارې وړاندې کوي؛ NetworkManager nmcli ته ځواب وایي۔ دا غوښتنې هغه وخت بېرته راځي چې کمانډ پای ته ورسېږي، کوم چې هغه شیبه نه ده چې ټونل کارولو وړ کیږي۔ د خپل ځای پرځای شوي نسخې لپاره د عرضه کوونکي خپل اسناد ولولئ، ځکه چې دا انټرفیسونه بدلېږي او ځینې په بشپړه توګه لرې کیږي۔

nmcli connection up "Work VPN"
networksetup -connectpppoeservice "Work VPN"

ګټه دا ده چې عرضه کوونکی خپل پروفایل زېرمه پېژني، نو غوښتنه هغه کنفیګرېشن کاروي چې GUI به یې کارولی۔ زیان دا دی چې هر عرضه کوونکی خپل فعلونه جوړوي، او د یو کلاینټ لپاره لیکل شوی سکریپټ بل ته نه ځي۔ دا پرت د ترټولو لنډې لارې په توګه وګڼئ کله چې کلاینټ ټاکل شوی او نسخه پن شوې وي۔

پرت 2: د عملیاتي سیسټم خپل خدمت

په Windows کې ډایلر د عملیاتي سیسټم برخه ده، او د عرضه کوونکي پروفایل زېرمې پرځای د تلیفون کتابچې ننوتلو سره کار کوي۔ دا هغه د کلاینټونو ترمنځ ډېر وړ وړ او د خدمت حساب څخه د سکریپټ کولو لپاره اسانه کوي۔ دا دا هم مانا لري چې اړیکه کېدای شي په یو ځای کې وي او په بل کې نه وي، کوم چې په غلط لیست کې کتونکي ګډوډوي۔

rasdial "Work VPN" user pass
Get-VpnConnection -Name "Work VPN" | Select-Object ConnectionStatus

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

Remove-VpnConnection -Name "Old VPN" -Force
Get-VpnConnection

په macOS کې معادل د شبکې خدمتونو لیست دی، چیرې چې موجود خدمت په نوم نښلول کیږي نه چې په ځای کې جوړ شي۔

اسناد په هر پرت کې تویېږي، نو چینل وټاکئ

هر څه چې په کمانډ کرښه کې ورکوئ د هر ځایي کارونکي لپاره په پروسس جدول کې ښکاري، او معمولاً په شیل تاریخ کې هم پاتې کیږي۔ د OpenVPN ملاتړ شوی بدیل دا دی چې راز له فایل څخه ولولئ --askpass سره، او فایل پخپله دې ته اړتیا لري چې اجازې د هغه باور سره سمون ولري چې تاسو په کې ږدئ۔ نومول شوې نلکه د راز په ډیسک لیکل مخنیوی کوي مګر هر هغه پروسس ته چې کولای شي یې پرانیزي اجازه ورکوي چې هلته ولیکي۔ په Windows کې راز د اسنادو مدیر کې یا په داسې فایل کې وساتئ چې یوازې د خدمت حساب یې لوستلای شي، او هیڅکله د بیچ فایل کې د لټرل په توګه مه ساتئ۔

openvpn --config /etc/openvpn/work.conf --askpass /etc/openvpn/work.secret --auth-nocache --daemon
ls -l /etc/openvpn/work.secret

همدا قاعده د ټوکنونو او یو ځل کارېدونکو کوډونو لپاره هم صدق کوي: که اتوماتیک کول ورته اړتیا ولري، اتوماتیک کول داسې چینل ته اړتیا لري چې د کمانډ کرښې دلیل نه وي۔ کله چې میکانېزم بدلوئ راز وڅرخوئ، ځکه چې زاړه ارزښت چیرې په یو لاګ کې پروت دی۔ کار کوونکی او تویېدونکی سکریپټ کار کوونکی سکریپټ نه دی۔

د حالت انتظار وکړئ، بیا د یو مالک څارنه وکړئ

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

ip link show tun0
nmcli -t -f GENERAL.STATE connection show "Work VPN"
curl -sS --max-time 5 https://app.internal.example/health -o /dev/null

جلا کول په مخالف لوري کې همدا ستونزه لري: پروسس کېدای شي د لارو له منځه تلو دمخه ووځي۔ د کلاینټ هکونه چیرې چې شتون لري وکاروئ، لکه OpenVPN up او down سکریپټونه یا د systemd واحد ExecStartPost، ځکه چې دوی په هغه ټکي کې ځي چې تاسو واقعاً ورته اهمیت ورکوئ۔ هکونه د هغه څه د امتیازاتو سره ځي چې دوی یې بللي، نو د شبکې بیا پیلولو هک ته د انګېرنې پرځای روښانه قاعده ته اړتیا ده۔ د اړیکې په ټول ژوند کې دقیقاً یو مالک وساتئ۔

کله چې دوه څارونکي یو پروفایل پیل او بندوي، پایله د بیا نښلولو یوه حلقه ده چې د عرضه کوونکي د قطعې په څېر لوستل کیږي۔ Runbook هغه وخت پای ته رسیږي چې پرت مستند شو، راز داسې چینل ولري چې argv نه وي، د انتظار شرط د وخت محدودیت سره د حالت ازموینه وي، او یو پروسس د ژوند دورې مالک وي۔

اړوندې مقالې