رابط بالا آمده اما wg-quick شکست خورده است: حالا چه باید کرد
یک واحد شکستخورده میتواند تونلی نیمهپیکربندیشده بر جای بگذارد. نخستین گام شکستخورده را بخوانید، تصمیم بگیرید پاکسازی کنید یا تعمیر، و سپس آن را با یک درخواست اثبات کنید.
واحد قرمز است، رابط وجود دارد و تونل عمدتاً کار میکند، که گیجکنندهترین ترکیب ممکن است. راهاندازی یک توالی است: نخست رابط ساخته میشود، سپس نشانیها، مسیرها، تنظیمات حلکننده و هر فرمان قلاب میآید. شکست در گام چهارم سه گام نخست را سر جای خود میگذارد، پس نام رابط گواه آن است که راهاندازی آغاز شده، نه آن که تمام شده است. یک واقعیت اضافی این سردرگمی را میزدود: گامی که شکست خورد.
وضعیت ناقص همان شکست معمول است
این رفتار را باید انتظار داشت نه آن را خرابی دانست. رابط ارزانترین بخش راهاندازی و آسانترین چیزی است که جا میماند، و همان بخشی است که دستگاه را نیمهکاره نشان میدهد.
آنچه هنوز وجود ندارد هر چیزی است که پس از گام شکستخورده میآمد. اگر شکست در مرحله حلکننده بوده باشد، نشانیها و مسیرها هستند و DNS نیست. اگر مسیر بوده باشد، تونل نشانی دارد و هیچ راهی برای گذر از آن ندارد.
نتیجه دستگاهی است که به برخی آزمونها پاسخ میدهد و در برخی شکست میخورد، و از همین رو مردم گمان میکنند سرویس نوسان میکند، در حالی که هرگز با موفقیت آغاز نشده است. سرویسی که هرگز تمام نشده نمیتواند نوسان کند. تنها میتواند به همان دلیل بارها شکست بخورد.
نخستین گام شکستخورده را پیدا کنید
ژورنال واحد را بخوانید نه فقط وضعیت کنونی را، و آن را از بالای اجرای شکستخورده بخوانید. سطر آخر کد خروج را به شما میگوید؛ نخستین خطا میگوید چه چیزی را تعمیر کنید.
این فرمانها وضعیت واحد، ژورنال بوت آن واحد و وضعیت زنده تونل را چاپ میکنند:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0خطای حلکننده، مسیری که از پیش وجود دارد، قلابی که با کد ناصفر خارج شده و شکست تجزیه پیکربندی همه در همان پنجره پدیدار میشوند، و هر یک جزء خود را نام میبرد. حدس زدن تنها از روی وضعیت رابط همه این اطلاعات را نادیده میگیرد.
سه شرطی که تعمیر را تعیین میکند
تصمیم بگیرید که پاکسازی میکنید، در جا تعمیر میکنید یا واحد را از مسیر بوت برمیدارید، و پیش از تایپ کردن هر چیزی این را روشن کنید.
اگر رابط خراب است اما پیکربندی درست است، پاکسازی کنید و از نو آغاز کنید. اگر پیکربندی نادرست است، آن را درست کنید و باز هم نخست پاکسازی کنید، زیرا آغاز یک مدیر دوم روی وضعیت ناقص دو مالک برای یک رابط میسازد. اگر شکست یک جزء سیستم غایب باشد مانند یاور حلکننده که دستگاه ندارد، وابستگی را آگاهانه نصب یا حذف کنید، به جای آن که واحد را ویرایش کنید تا از شکایت دست بردارد.
این سه حالت بیشتر آنچه را که مانند واحد قرمز مرموز به نظر میرسد پوشش میدهد. پرسش جداکننده این است که آیا همان شکست روی دستگاهی با وضعیت پاک رخ میداد، و پاسخ معمولاً از نخستین سطر خطا میآید.
پیش از تلاش دوباره پاکسازی کنید
تلاش دوباره روی وضعیت موجود میتواند به دلیلی تازه شکست بخورد و دلیل اصلی را پنهان کند. رابط را با همان ابزاری که آن را ساخته پایین بیاورید، سپس تأیید کنید چیزی نمانده است.
رابطهای بیربط را پاک نکنید و پشته شبکه میزبان را بازنشانی نکنید. هر دو اقدامهایی بزرگ برای درست کردن شیئی کوچکاند، و یک تونل شکستخورده را به دستگاهی تبدیل میکنند که اتصالهای دیگرش باید دوباره برقرار شوند. دامنه درست یک رابط است و واحدی که مالک آن است. هر چیز گستردهتر پیش از رخ دادن به دلیلی نوشتهشده نیاز دارد.
تونل را اثبات کنید، نه واحد را
واحد سبز یعنی توالی راهاندازی با صفر خارج شده است. این به معنای رسیدن بسته به سوی دیگر نیست، و نه به معنای آن است که حلکننده همانگونه که میخواستید تنظیم شده است.
درخواستی از تونل بفرستید و وضعیتی را که آن را پدید آورده بخوانید:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netدستدادنی بیپاسخ باز هم میگوید تونل شکل گرفته و سوی دور خاموش است، که با واحدی که هرگز آغاز نشده مسئلهای متفاوت است. وضعیت واحد، دستدادن و نتیجه درخواست را در یک رکورد نگه دارید، زیرا مستقل از هم شکست میخورند و تنها ترکیب آنها سیستم را توصیف میکند.