چگونه یک تونل WireGuard را بهعنوان سرویس systemd راهاندازی کنیم
قالب wg-quick@ یک پروفایل نامدار را بالا میآورد و مسیرها، DNS و قلابها را نصب میکند۔ واحد را بررسی کنید، یک مدیر را مسئول نگه دارید و برچیدن را آزمایش کنید۔
شما یک پروفایل WireGuard در /etc/wireguard/wg0.conf دارید و میخواهید بدون تایپ دستی wg-quick up پس از هر راهاندازی مجدد، آن را بالا داشته باشید۔ قالب systemd همراه بسته دقیقاً همین کار را میکند: [email protected] دستور wg-quick را برای پروفایل به نام wg0 اجرا میکند۔ همچنین نشانیها، مسیرها، DNS و هر قلابی را که پروفایل اعلام میکند نصب میکند، که بیش از بارگذاری ساده یک کلید در هسته است۔ پیش از فرض کردن وجود قالب، بررسی کنید که واقعاً روی سیستم شما هست۔
ادامه این راهنما به همان ترتیبی پیش میرود که واقعاً انجامش میدهید۔
واحد و پروفایلی که میخواند را پیدا کنید
فایلهای واحد را با systemctl list-unit-files 'wg-quick*' فهرست کنید۔ در توزیعهایی که آن را بستهبندی میکنند [email protected] را میبینید، با نام نمونه که از پروفایل گرفته میشود۔ نمونه به /etc/wireguard/<name>.conf تجزیه میشود، پس wg-quick@wg0 فقط wg0.conf را میخواند و چیز دیگری نه۔ اگر فهرست خالی باشد، بسته ابزارها نصب نیست و هیچ اندازهای از فعالسازی کمکی نمیکند۔
پروفایل را روی حالت 600 و در مالکیت root نگه دارید۔ کلید خصوصی دارد و واحد با کمال میل با مجوزهای بدتر اجرا میشود اگر اجازه دهید۔
آن را بالا بیاورید و ژورنال را بخوانید
نمونه را با systemctl start wg-quick@wg0 شروع کنید، سپس systemctl status wg-quick@wg0 و journalctl -u wg-quick@wg0 -b را بررسی کنید۔ واحدی که شروع میشود و بیدرنگ خارج میشود معمولاً خطای پروفایل دارد و ژورنال نام خط را میگوید۔ با wg show تأیید کنید که رابط وجود دارد و آخرین دستدهی تازه است۔ راهنمای wg-quick فهرست میکند که اسکریپت فراتر از خود رابط چه میکند۔
رابط پیکربندیشده بدون دستدهی مشکل مسیر یا کلید است، نه مشکل سرویس۔
یک مدیر را مسئول نگه دارید
اگر NetworkManager یا کارخواه دیگری از قبل مالک تونل باشد، شروع واحد systemd مالک دومی برای همان رابط، مسیرها و DNS میسازد۔ نشانهها گیجکنندهاند: تونل بالا میآید، سپس مسیرها ناپدید میشوند، یا DNS پس از چند ثانیه برمیگردد۔ یک مدیر انتخاب کنید و دیگری را برای آن پروفایل غیرفعال کنید۔ ژورنال معمولاً تصاحب را به صورت تغییر مسیرها یا حلکننده درست پس از گزارش موفقیت واحد نشان میدهد۔
دو مدیر مالکیت را شریک نمیشوند۔ روی هم مینویسند۔
توقف، راهاندازی مجدد و بوت را آزمایش کنید
systemctl stop wg-quick@wg0 را اجرا کنید و تأیید کنید که رابط رفته و مسیرها حذف شدهاند۔ سپس دوباره شروعش کنید و بررسی کنید که مسیرها برمیگردند، چون باگهای برچیدن به صورت مسیرهای باقیمانده ظاهر میشوند نه شروعهای ناموفق۔ در پایان آن را هنگام بوت با systemctl enable --now wg-quick@wg0 فعال کنید و یک بار راهاندازی مجدد کنید۔
هنگام بوت نام نقطه پایانی باید پیش از اجرای واحد تجزیه شود۔ اگر DNS هنوز بالا نیست، واحد شکست میخورد و تا زمانی که دستی شروعش نکنید شکستخورده میماند۔
مالک را ثبت کنید
بنویسید واحد کدام پروفایل را میخواند، کدام مدیر مالک رابط است و فایل از کجا آمده است۔ وقتی بعداً کسی همان تونل را در یک کارخواه رومیزی وارد میکند، آن یادداشت تفاوت میان یک مهاجرت و دو استقرار است که بر سر یک نشانی میجنگند۔ نام رابط را هم ثبت کنید، چون دو پروفایل با نامهای مشابه منبع معمول سردرگمی هستند۔
تونلی با دو مالک تا اولین راهاندازی مجدد کار میکند و بعد معمایی میشود۔ به همین دلیل یادداشت به مخزن تعلق دارد نه به یک رشته گفتگو۔