غیرفعال کردن اتصال خودکار VPN بدون حذف پروفایل
NetworkManager پروفایلهای VPN را بهخودیخود متصل نمیکند. محرک، یک ورودی secondaries روی اتصال پایه است و همان چیزی است که باید تغییر کند.
در هر بوت تونل پیش از آنکه کسی تصمیم به استفاده از آن گرفته باشد بالا میآید، و کادر تیکی که مسئول به نظر میرسد هنگام برداشتن هیچ کاری نمیکند. این باگ رابط کاربری نیست. NetworkManager پروفایلهای VPN را بهخودیخود متصل نمیکند؛ یک VPN راه میافتد چون یک اتصال پایه نام آن را میبرد. اصلاح در پروفایل دیگر است و تنها یک ویژگی است.
پرچمی که برمیدارید بررسی نمیشود
پروفایل VPN ویژگی اتصال خودکار خودش را دارد و برای اتصالهای VPN مدیر از آن برای راهاندازی چیزی استفاده نمیکند. برداشتن آن پروفایل را بهصورت یکدست خوانا میکند و هیچ رفتاری را تغییر نمیدهد، و دقیقاً به همین دلیل غافلگیری پس از ویرایش باقی میماند.
سازوکار مستندشده فهرستی از اتصالهای ثانویه روی پروفایل پایه است. وقتی اتصال Wi-Fi یا Ethernet فعال میشود، مدیر UUIDهای VPN فهرستشده در آن را هم فعال میکند. امروز در آن فهرست فقط اتصالهای VPN پشتیبانی میشوند، و اگر چند ورودی داشته باشد یک ویرایش روی همه آنها اثر میگذارد.
اولویت اتصال خودکار نامزدها را رتبهبندی میکند؛ آن هم کلید خاموشکردن نیست.
پیش از ویرایش دو پروفایل را بخوانید
ابتدا نامها، UUIDها و نوعها را ثبت کنید، چون نامهای نمایشی تکرار میشوند و اشتباه گرفتن اتصال پایه با VPN آسان است. سپس ویژگیهایی را که در هر طرف اهمیت دارند بخوانید.
nmcli -f NAME,UUID,TYPE connection show
nmcli -f connection.secondaries connection show "Wired connection 1"
nmcli -f connection.autoconnect,connection.autoconnect-priority connection show "Work VPN"
در ویرایشگر گرافیکی همان مقادیر زیر برچسبهای متفاوت دیده میشوند. زبانه General اتصال پایه تنظیم اتصال خودکار را دارد و وقتی افزونه نصب باشد، گزینه بالا آوردن VPN همراه با آن را. میزکار ترجمهشده ممکن است فیلد اولویت را «اتصال خودکار با اولویت» بنامد که کلید فعالسازی نیست. اشتباه گرفتن این دو، کادر تیک برداشتهشده و بوت بدون تغییر را نتیجه میدهد.
یک ورودی را بردارید، نه کل فهرست را
ویژگی یک فهرست است، پس اختصاص یک مقدار تازه همه چیز درون آن را جایگزین میکند. از علامت منهای ابتدایی استفاده کنید تا یک UUID حذف شود و بقیه فهرست دستنخورده بماند.
nmcli connection modify uuid BASE_UUID -connection.secondaries VPN_UUID
nmcli -f connection.secondaries connection show "Wired connection 1"
فهرست را پیش و پس بررسی کنید، بهویژه روی ماشینی که به یک VPN دوم وابسته است.
پروفایلها را میتوان به کاربران مشخصی محدود کرد. وقتی چنین است، حسابی که از آن ویرایش میکنید باید در آن فهرست باشد؛ وگرنه ممکن است فرمان رد شود، یا مدیر پروفایل جداگانهای برای هر کاربر بنویسد که مالک اصلی هرگز آن را نمیبیند. پیش از نتیجهگیری اینکه ویرایش کاری نکرده، مالک را بررسی کنید، چون نسخه خاموش برای هر کاربر بسیاری از نتایج گیجکننده را توضیح میدهد.
یک گذار واقعی را بیازمایید، نه یک راهاندازی دستی
اتصال دوباره پروفایل پایه آزمون معنادار است. آن را پایین و دوباره بالا بیاورید، یا سیستم را راهاندازی مجدد کنید، سپس فهرست فعال، فهرست رابطها و جستوجوی مسیر برای یک نشانی داخلی را ببینید.
nmcli connection show --active
ip -brief address
ip route get 10.8.0.1
اگر تونل هنوز ظاهر میشود، مالک باقیمانده معمولاً یک اسکریپت است. ژورنال مدیر نشان میدهد کدام پروفایل و چه زمانی فعال شده است، و دایرکتوری dispatcher جایی است که یک hook فراخواننده nmcli connection up در رویداد یک رابط در آن میزیست. hook در ویرایشگر پروفایل دیده نمیشود، و به همین دلیل از هر آزمایش کادر تیک جان سالم به در میبرد.
مسیر دستی را فعال نگه دارید، چون نیاز واقعی همان است.
نتیجه خوب چه شکلی است
پروفایل با دروازه، گواهی و اعتبارنامههایش نصبشده میماند. در بوت فعال نمیشود و وقتی بخواهید بالا میآید. آن سه جمله آزمون پذیرش است.
UUID اتصال پایه را در runbook بنویسید، چون همان پروفایلی است که بار بعد ویرایش میکنید.
VPNی که در دسترس است اما خودکار نیست، انتخابی در پیکربندی است نه ویژگیای که کم باشد، و فاصلهاش یک ویژگی است.