NetworkManager در برابر wg-quick: مالک مسیرهای WireGuard شما کیست؟
دو مدیر میتوانند هر دو مدعی یک پیوند WireGuard باشند، و پیکربندیای که ویرایش کردید ممکن است همان نباشد که در حال اجراست. مالک را از مسیرها، قواعد و وضعیت رابط پیدا کنید.
AllowedIPs را در فایل WireGuard تغییر میدهید، تونل را دوباره راهاندازی میکنید و جدول مسیریابی دقیقاً مثل قبل به نظر میرسد. واکنش معمول حذف مسیر مزاحم و ادامه دادن است، که تا وقتی اتصال بعدی آن را برنگرداند کار میکند. فایلی که ویرایش کردید لزوماً همان شیئی نیست که وضعیتی را که میبینید تولید کرده است. دو مدیر میتوانند یک پروتکل را روی یک ماشین اجرا کنند و در هر لحظه فقط یکی از آنها مالک رابط است.
افسانه: روی ماشین یک پیکربندی WireGuard وجود دارد
wg-quick فایلی را زیر /etc/wireguard/ میخواند و وقتی آن را بالا میآورید رابط را میسازد. NetworkManager یک نمایه اتصال را در قالب keyfile خودش ذخیره میکند و هنگام فعالسازی آن را ارائه میدهد، و وارد کردن یک فایل wg-quick مقادیر را در آن نمایه کپی میکند، نه اینکه به آن پیوند بزند. ویرایش نسخه اصلی پس از آن هیچ چیز را تغییر نمیدهد، چون نمایه دیگر آن را نمیخواند. بنابراین همان فهرست همتاها و کلیدها میتواند دو بار وجود داشته باشد، با نسخه دوم در حال اجرا.
نشانهای که ارزش به یاد سپردن دارد: تغییراتی که از راهاندازی مجدد جان سالم به در میبرند اما از وارد کردن دوباره نه، از یک انبار آمدهاند، و تغییراتی که هنگام راهاندازی مجدد ناپدید میشوند از دیگری.
یک مثال عملی تقسیم را آشکار میکند. مقایسه کنید nmcli connection show را با systemctl status wg-quick@wg0، سپس بررسی کنید که مسیرها واقعاً به کدام رابط آویزاناند. اگر سرویس مرده و رابط بالا باشد، هر چه فایل بگوید، نمایه کار را انجام میدهد.
افسانه: قواعد مسیریابی بخشی از WireGuard هستند
دستگاه WireGuard در هسته همتاها و کلیدها را میشناسد و درباره مسیریابی سیاستی چیزی نمیداند. هر ورودی ip rule و هر جدول اضافهای که میبینید را ابزاری نصب کرده که رابط را بالا آورده است. wg-quick میتواند یک fwmark و یک جدول اختصاصی بههمراه قواعدی که به آن اشاره میکنند اضافه کند، در حالی که NetworkManager مسیرها را از طریق تنظیمات ipv4 خودش نصب میکند و DNS را به هر بکاند حلکنندهای که سیستم استفاده میکند وامیگذارد. همان تونل، عوارض جانبی متفاوت.
پیش از تغییر هر چیزی ip rule و ip route show table all را بخوانید و یادداشت کنید هر مسیر در کدام جدول زندگی میکند. شماره جدولی که خودتان پیکربندی نکردهاید سرنخ قویای درباره ابزاری است که آن را ساخته است.
افسانه: حذف مسیر یک راهحل است
مسیری که در زمان اجرا حذف میشود مسیری است که مالک در فعالسازی بعدی دوباره نصب میکند، و فعالسازی میتواند بدون شما رخ دهد: بیدار شدن لپتاپ، لرزش پیوند، راهاندازی مجدد سرویس یا اتصال خودکار NetworkManager. به همین دلیل همان مسیر برمیگردد و به همین دلیل راهحل موقت غیرقابلاعتماد به نظر میرسد نه اشتباه. ابتدا مدیر را شناسایی کنید، سپس ورودیای را که آن مدیر واقعاً میخواند تغییر دهید.
اتصال دوباره و راهاندازی مجدد سرویس مربوطه همان آزمونی است که یک اصلاح واقعی را از یک اصلاح مرتببهنظر جدا میکند.
یک مالک انتخاب کنید و دیگری را حذف کنید
مدیری را انتخاب کنید که استقرار شما از آن پشتیبانی میکند، سپس فعالسازی رقیب را از طریق کنترل مستندش غیرفعال کنید، نه اینکه امیدوار باشید بیکار بماند. سرویس wg-quick ماسکشده یا نمایه حذفشده NetworkManager صریح است؛ فعال گذاشتن هر دو و مسابقه دادن آنها با هم نیست. پیش از غیرفعال کردن هر چیزی دسترسی کارآمد را حفظ کنید، چون رابطی که نشست راه دور شما را حمل میکند ممکن است همانی باشد که در آستانه حذفش هستید.
پس از تغییر، ترافیک شامل و مستثنا، سپس DNS و سپس یک بار راهاندازی مجدد را بررسی کنید. اگر وضعیت با یک مدیر از راهاندازی مجدد جان سالم به در ببرد، به جای تصادف یک مالک دارید.
این قاعده کلی ارزش نگه داشتن بیرون از WireGuard را هم دارد: وقتی تنظیمی مدام برمیگردد، حذف نتیجه را متوقف کنید و فرایندی را پیدا کنید که مدام آن را تولید میکند.