دو فرمان برای چیزی که به نظر می‌رسد همان کار روی OpenVPN Access Server است جای‌گذاری می‌شوند، اما کارهای متفاوتی انجام می‌دهند. systemctl restart openvpnas کل محصول را متوقف و دوباره راه‌اندازی می‌کند. sacli start سرویس‌های داخلی را بالا می‌آورد که پیکربندی تازه‌تغییریافته شما را می‌خوانند. انتخاب میان آن‌ها مسئله سلیقه نیست: به آنچه مستندات خود تنظیم می‌گوید بستگی دارد، به اینکه نشست شما از سروری که می‌خواهید دوباره راه‌اندازی کنید عبور می‌کند یا نه، و به اینکه اصلا به محصول درست نگاه می‌کنید یا نه.

دو لایه، یک دیمن

Access Server به‌صورت یک واحد systemd به نام openvpnas اجرا می‌شود و آن دیمن بر سرویس‌های داخلی پشت رابط وب و شنونده‌های VPN نظارت می‌کند. sacli رابط خط فرمان به همان نصب است، در /usr/local/openvpn_as/scripts/sacli، و می‌تواند آن اجزای داخلی را بدون جایگزینی واحد راه‌اندازی، متوقف و پرس‌وجو کند.

به همین دلیل هر دو فرمان وجود دارند. راه‌اندازی دوباره دیمن همه چیز را از نو اجرا می‌کند، از جمله فرآیندی که تونل‌های کلاینت را پایان می‌دهد. sacli start از دیمنی که در حال اجراست می‌خواهد اجزایش را بالا بیاورد تا پیکربندی جدید را بخوانند، و بیشتر تغییرات ویژگی در واقع همین را می‌خواهند.

شرط اول: مستندات تنظیم چه می‌گوید

صفحه تنظیمی را که تغییر داده‌اید بخوانید، نه تنظیمی را که ماه گذشته تغییر داده‌اید. پس از ویژگی‌ای که با ConfigPut نوشته می‌شود معمولا sacli start می‌آید، و این جفت همان گام اعمال مستند است. تغییر در رفتار سطح شنونده، یا هر چیزی که صفحه آن را نیازمند راه‌اندازی دوباره سرویس بداند، همان دسته‌ای است که راه‌اندازی دوباره واحد در آن درست است.

این دو فرمان قابل تعویض نیستند، پس الگوی خطای حدس زدن نامتقارن است. استفاده از sacli start وقتی راه‌اندازی دوباره کامل لازم بود، فرآیندی قدیمی را باقی می‌گذارد که هنوز پیکربندی قبلی را سرو می‌کند، و این شبیه نادیده گرفته شدن تنظیم به نظر می‌رسد. انجام راه‌اندازی دوباره کامل وقتی sacli start کافی بود، هر کلاینت متصل را بی‌دلیل قطع می‌کند.

شرط دوم: آیا نشست خودتان داخل تونل است

اگر Access Server را از طریق VPNی که فراهم می‌کند مدیریت می‌کنید، راه‌اندازی دوباره اتصالی را که shell شما را حمل می‌کند حذف می‌کند. ممکن است فرمان پس از مرگ نشست شما کامل شود و ندانید کار کرده یا نه. sacli start هم به همین دلیل می‌تواند نشست را لحظه‌ای مختل کند، وقتی جزئی که دوباره راه‌اندازی می‌شود ترافیک شما را مدیریت می‌کند.

پیش از هر یک از دو فرمان یک مسیر خارج از باند باز نگه دارید: کنسول ارائه‌دهنده، کنسول هایپروایزر یا نشست سریال. این شرط تعیین می‌کند چه زمانی فرمان را اجرا می‌کنید، نه کدام فرمان، و همان چیزی است که تغییری دودقیقه‌ای را به گزارش قطعی تبدیل می‌کند.

شرط سوم: آیا این همان محصولی است که فکر می‌کنید

Access Server همان Community OpenVPN نیست. نصب جامعه واحدهایی مانند openvpn@server یا openvpn-client@profile اجرا می‌کند، پیکربندی در /etc/openvpn است و sacli آنجا وجود ندارد. راه‌اندازی دوباره هر واحدی که openvpn در نامش دارد روی یک میزبان مشترک، راهی است که تونل‌های بی‌ربط با هم پایین می‌آیند.

پیش از دست زدن به هر چیز مشخص کنید: systemctl status openvpnas --no-pager پاسخ می‌دهد که آیا Access Server همان چیزی است که اجرا می‌شود، sacli status اجزای داخلی آن را فهرست می‌کند و systemctl list-units --type=service واحدهایی را فهرست می‌کند که نامشان openvpn دارد. اگر فرمان آخر واحدهایی با نام پروفایل نشان داد، شما روی محصول جامعه هستید و بقیه این مطلب به شما مربوط نیست.

اعمال کنید و سپس فراتر از active بررسی کنید

واحدی که active گزارش می‌کند فرآیند در حال اجرا دارد، که با مسیر احراز هویت کارکننده یکی نیست. پس از گام اعمال، sacli status را برای اجزایی که انتظار راه‌اندازی دوباره‌شان را داشتید بررسی کنید، تایید کنید مقدار با sacli ConfigQuery ذخیره شده و سپس یک ورود محدود کلاینت با حساب آزمایشی اجرا کنید.

با چیزی در سطح برنامه تمام کنید: از طریق تونل به منبعی خصوصی برسید، نه فقط ping به نشانی عمومی سرور. دست‌دهی که موفق می‌شود در حالی که مسیر هل‌داده‌شده یا تنظیم DNS اشتباه است، همه بررسی‌های سرویس را می‌گذراند و باز هم کسی را که مشکل را گزارش کرده ناکام می‌گذارد.

آموزش مدیریت سرویس ارائه‌دهنده مرجع این است که کدام عملیات به sacli تعلق دارد، و ارزش دارد پیش از تصمیم‌گیری به اینکه راه‌اندازی دوباره گزینه ایمن است آن را باز کنید.

تصمیم در یک گذر

این چهار خط را پایین بروید و در اولین خطی که می‌خورد بایستید:

  • صفحه تنظیم sacli start را نام می‌برد، یا همین حالا ConfigPut را اجرا کرده‌اید: از sacli start استفاده کنید.
  • صفحه راه‌اندازی دوباره می‌خواهد، یا تغییر به شنونده‌ها مربوط است نه ویژگی‌ها: از systemctl restart openvpnas استفاده کنید.
  • shell شما از این سرور می‌آید: ابتدا دسترسی کنسول را فراهم کنید، سپس فرمانی را که دو خط بالا انتخاب کردند اجرا کنید.
  • بررسی: sacli status، پرس‌وجوی مقدار با ConfigQuery، یک ورود، یک منبع خصوصی. وضعیت سرویس به‌تنهایی خط پایان نیست.

دو خط از آن‌ها بررسی و دو خط کنش است، و منظور همین ترتیب است. اگر نمی‌توانید به پرسش محصول پاسخ دهید، بایستید: فرمانی که می‌خواستید اجرا کنید به نصب دیگری تعلق دارد و تونلی که پایین می‌آورید همانی نیست که منظورتان بود.

مقالات مرتبط