OpenVPN اتمام مقداردهی اولیه را اعلام میکند: چرا خط فرمان بازنمیگردد
آخرین خط گزارش پایان راهاندازی را نشان میدهد، نه پایان برنامه. بین اشکالزدایی در پیشزمینه، واحد سرویس و حالت شبح یکی را انتخاب کنید.
هیچ چیز قفل نشده است وقتی ترمینال پس از آخرین خط گزارش ساکت میشود. این شکل مورد انتظار یک کارخواه در پیشزمینه است: راهاندازی را تمام کرده و حالا همانجا نشسته و ترافیک را حمل میکند. خط فرمان پوسته آن نشانه موفقیتی نیست که به نظر میرسد.
پیام را مرز میان راهاندازی و وضعیت پایدار بدانید، چون دقیقاً همین را نشان میدهد.
پیام پایان راهاندازی را نشان میدهد، نه پایان فرایند را
OpenVPN آن خط را پس از باز کردن دستگاه، پیکربندی رابط، نصب مسیرها و پایان تبادل TLS با همتا چاپ میکند. سپس فرایند به کار خود ادامه میدهد، چون وظیفهاش باز نگه داشتن تونل و بازفرستادن بستههاست. برنامهای که در پیشزمینه اجرا میشود تا وقتی این وظیفه را انجام میدهد به خط فرمان برنمیگردد. سکوت خروجی پس از آن طبیعی است، چون کارخواه فقط وقتی چیزی تغییر کند حرف میزند.
اگر خط ظاهر شود و اتصال بعداً بمیرد، آن رویداد دیگری است، و گزارش بعداً آن را خواهد گفت.
Ctrl+C یک تصمیم است، نه یک راهحل
فشردن Ctrl+C یک وقفه میفرستد که کارخواه آن را درخواست خاموش شدن میداند. خط فرمان برمیگردد، تونل از بین میرود و هر نشستی که از آن استفاده میکند تمام میشود. این شبیه پیشرفت است و در واقع عکس آن است. اگر هدف اتصال ماندگار است، پاسخ این است که فرایند را جایی ببرید که بدون ترمینال شما به کار ادامه دهد، نه اینکه آن را قطع کنید.
نگه داشتن آن در پیشزمینه هنگام اشکالزدایی انتخاب درستی است، چون خطاهای بعدی در همان پنجره دیده میشوند. یک دقیقه سکوت به هیچ سمتی چیزی را ثابت نمیکند؛ به جای تماشای خروجی، یک منبع را از طریق تونل آزمایش کنید.
آنچه پیام اثبات نمیکند
اتمام یک ادعای محلی درباره پیکربندی خود کارخواه است. نمیگوید که طرف مقابل پاسخ میدهد، که مسیرهای نصبشده با نیاز شما میخوانند، یا که حل نام از طریق تونل کار میکند. نمایه تونل شکافته میتواند کاملاً مقداردهی شده باشد در حالی که یک اشتراک شرکتی دسترسناپذیر میماند، چون مسیر یا سیاست DNS هرگز آن را پوشش نداده است. نمونههای سمت سرور وقتی آماده پذیرش کارخواهها هستند خط مشابهی چاپ میکنند، که با متصل بودن هر کارخواه یکی نیست.
«سرور راه افتاد» و «لپتاپ میتواند اشتراک را باز کند» مشاهدههایی از دو جای مختلفاند، و قاطی کردنشان شما را به اشکالزدایی میزبان اشتباه میفرستد.
اجرای آن بدون ترمینال
برای استقرار ماندگار، از ترتیب سرویسی که پلتفرم پشتیبانی میکند استفاده کنید. روی میزبان systemd این یک نمونه openvpn-client@office است با نمایه در /etc/openvpn/client، که راهاندازی و فعال میشود تا از راهاندازیهای دوباره جان سالم به در ببرد. Community OpenVPN همچنین --daemon را همراه با --log یا --log-append عرضه میکند، که فرایند را جدا میکند و خروجی را به فایل میفرستد. هر دو رویکرد نحوه اجرای فرایند را تغییر میدهند؛ هیچکدام مسیری را درست نمیکند یا برنامهای دوردست را سالم نمیکند.
بررسی کنید که نمونه دومی را کنار نمونهای که سرویس از قبل مدیریتش میکند راه نیندازید. دو کارخواه که یک نمایه را ادعا میکنند گزارشهای گیجکننده و یک تونل ناخواسته میسازند.
ترتیبی را انتخاب کنید که با کار میخواند
پیشزمینه برای تشخیص، سرویس برای هر چیزی که باید از نشست عمر بیشتری داشته باشد، حالت شبح وقتی مدیر سرویسی نیست که به آن تکیه کنید. این سه موارد معمول را پوشش میدهند و هرکدام دلیل روشنی برای وجود دارند. انتخاب تصادفی یکی از آنها همان چیزی است که گزارش «تا وقتی پنجره بسته شود کار میکند» را میسازد.
وقتی تونل باید بماند، بعداً تأیید کنید که پس از راهاندازی دوباره برمیگردد و گزارشهایش جایی میرسند که نگاه خواهید کرد. خط مقداردهی اولیه هم در همان گزارشها دیده میشود، و آنوقت هیچکس لازم نیست برایش ترمینالی را تماشا کند.