منبع اصلی نوشتار زیر در این لینک قرار دارد

اتصال خودکار کانکشن vpn در لینوکس

چندی پیش مشکلی برای دوستم توی خوابگاه پیش اومده بود که کانکشن vpn قطع میشد و دانلودهاش نصفه شب ها نصفه میموندن!چاره ی کار بجستم و این راه یا بیافتم.
خب. اول شما کانکشن vpn مورد نظرتون رو بسازید. یا قبلا ساختید! و بعد دستور زیر رو اجرا کنید:
nmcli con
این دستور کانکشن های شما رو لیست میکنه و برای هر کدوم یک عبارت معینی به نام uuid نشون میده. شما کانکشن مورد نظرتون رو پیدا کنید و uuid مخصوص به اون رو در اسکریپت زیر جایگزین کنید. همچنین اسم کانکشن رو هم جایگزین کنید.


#!/bin/bash
while [ \"true\" ]
do
    VPNCON=$(nmcli con status)
    if [[ $VPNCON != *khabgah* ]]; then
        echo \"Disconnected, trying to reconnect...\" & zenity --info --title=\"VPN reconnected\" --text=\"VPN connection khabgah has been disconnected. Please wait to auto reconnect...\"
        (sleep 1s && nmcli con up uuid fe7cb00d-86b1-4457-a4df-32657c78dc4b)
    else
        echo \"Already connected !\"
    fi
    sleep 30
done

حالا اسکریپت بالا رو در یک فایل متنی دخیره کنید  مجوز اجرا شدن رو بهش بدید. (کلیک راست، properties , permissions و بعد allow executing file as a programs . این اسکریپت رو میتونید بدید به scheduled task تا براتون موقع بوت شدن اجرا کنه. یا یه کار دیگه هم که میشه کرد اینه که آدرس این اسکریپت رو در فایلی به نام profile. یا bashrc. که به صورت مخفی در فولدر home کاربر وجود داره قرار بدید. مثلا این خط رو:

/home/amin/Autovpnscript

نکته: اگه دوست ندارید پیامی رو که اسکریپت موقع قطع بودن کانکشن نشون میده، نشون نده، عبارت سبز رنگ بالا رو حذف کنید تا همه چیز بی سر و صدا اتفاق بیفته!