وبلاگ

WireGuard متصل است اما DNS در Linux کار نمی‌کند

عیب‌یابی مشکلات DNS در WireGuard روی Linux. شواهد دست‌دهی را بررسی کنید، تنظیمات systemd-resolved را بازبینی کنید و هر تغییر را در برنامه‌ای که مشکل دارد بررسی کنید.

FreeGuard Editorial Team · 2026-11-04

یک اتصال WireGuard ممکن است بسته‌های رمزگذاری‌شده را مبادله کند، در حالی که برنامه‌ها همچنان نتوانند نام‌ها را جست‌وجو کنند. در Linux، تونل، تنظیمات سرویس حل نام و برنامه‌ای را که مشکل دارد جداگانه بررسی کنید. این بررسی‌ها پیش از تغییر یک پیکربندی فعال، به محدود کردن بخشی که نیاز به رسیدگی دارد کمک می‌کنند.

این راهنما سیستم‌های Linux را پوشش می‌دهد که از ابزارهای WireGuard و systemd-resolved استفاده می‌کنند. دستورات عیب‌یابی مستند را توضیح می‌دهد و هیچ نتیجه‌ای از آزمایش VPN زنده در آن وجود ندارد. به جای wg0 از نام رابط موجود در تنظیمات خود استفاده کنید.

مشخص کنید کدام اتصال با مشکل مواجه است

یک نام میزبان ناموفق و برنامه‌ای را که خطا گزارش می‌کند ثبت کنید. یادداشت کنید که وب‌سایت‌های عمومی، نام‌های داخلی یا هر دو تحت تأثیر قرار گرفته‌اند. اگر مقایسه با شبکه مورد اعتماد دیگری مناسب است، فقط یک نام میزبان عمومی را آزمایش کنید و محافظت VPN را فعال نگه دارید. نام‌های داخلی یا حساس را در شبکه و سرویس حل نام تأییدشده نگه دارید؛ آن‌ها را به سرویس DNS شبکه دیگری ارسال نکنید.

این مشاهدات را کنار هم نگه دارید. آن‌ها به جای یک رشته تغییر پیکربندی بدون نتیجه روشن، آزمایشی تکرارپذیر در اختیارتان می‌گذارند. آزمایش موفق در یک مرورگر، شواهد مفیدی درباره همان مرورگر است؛ بررسی را در برنامه‌ای که ابتدا دچار مشکل شده بود نیز تکرار کنید.

WireGuard را بدون افشای پیکربندی بررسی کنید

در یک سیستم Linux که ابزارهای WireGuard روی آن نصب شده‌اند، وضعیت جاری را بررسی کنید:

sudo wg show wg0 latest-handshakes
sudo wg show wg0 transfer

راهنمای ابزار WireGuard این دو نما را مستند کرده است. آن‌ها را در جریان یک تلاش کنترل‌شده برای اتصال بررسی کنید. دست‌دهی ثبت‌شده یک مشاهده است، نه توضیحی کامل برای وضعیت اتصال برنامه.

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

سرویس حل نام فعال را بررسی کنید

در سیستم‌هایی که از systemd-resolved استفاده می‌کنند، اجرا کنید:

resolvectl status
resolvectl query example.com

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

پیش از ویرایش هر چیزی، نتیجه را ثبت کنید. اگر دستور موجود نیست یا گزارش می‌دهد که سرویس حل نام در دسترس نیست، مدیر DNS مورد استفاده توزیع خود را شناسایی کنید. این بخش از راهنما فرض می‌کند که systemd-resolved در حال اجراست.

تنظیمات را با ابزاری که تونل را راه‌اندازی می‌کند تطبیق دهید

راهنمای wg-quick با DNS به‌عنوان یک گزینه اضافی رابط برخورد می‌کند. هنگام راه‌اندازی، wg-quick برای اعمال این تنظیمات DNS، برنامه resolvconf را فراخوانی می‌کند؛ هنگام خاموش شدن، آن‌ها را حذف می‌کند. با مقدار پیش‌فرض Table = auto، مسیرها از AllowedIPs همتا استخراج می‌شوند؛ یک مسیر پیش‌فرض (0.0.0.0/0 یا ::/0) با استفاده از ip-rule به‌صورت ویژه مدیریت می‌شود. Table = off ایجاد خودکار مسیر را غیرفعال می‌کند، در حالی که مقدار دیگری برای Table یک جدول مسیریابی را انتخاب می‌کند. پیش از نتیجه‌گیری درباره مسیرهایی که wg-quick باید نصب کند، این گزینه را بررسی کنید.

بررسی کنید که واقعاً WireGuard را چگونه راه‌اندازی می‌کنید. اگر یک مدیر شبکه دسکتاپ یا برنامه دیگری تونل را مدیریت می‌کند، تنظیمات DNS و مسیریابی همان برنامه را بررسی کنید. یک فیلد در فایل پیکربندی نقطه شروع بررسی است؛ آن را با تنظیمات فعالی که ثبت کرده‌اید مقایسه کنید.

برای نام‌های داخلی، بررسی کنید کدام پیوند پرس‌وجوهای DNS مربوط را دریافت می‌کند. همان‌طور که در مستندات سرویس حل نام توضیح داده شده است، systemd-resolved هنگام انتخاب سرورهای DNS از دامنه‌های مسیریابی و جست‌وجو استفاده می‌کند. بنابراین ممکن است بررسی یک جست‌وجوی داخلی و یک جست‌وجوی عمومی به مسیرهای متفاوتی نیاز داشته باشد.

یک تغییر ایجاد کنید و نتیجه را بررسی کنید

از مشاهدات برای انتخاب بررسی بعدی استفاده کنید:

مشاهده گام بعدی
تلاش کنترل‌شده شواهد مفیدی درباره تونل ارائه نمی‌کند پیش از فرض اینکه DNS علت مشکل است، تونل را بررسی کنید
پرس‌وجوی سرویس حل نام برای نام موردنظر ناموفق است تنظیمات فعال سرویس حل نام و دسترسی به سرور DNS موردنظر را بررسی کنید
پرس‌وجو موفق است اما برنامه همچنان مشکل دارد رفتار اتصال و حل نام همان برنامه را بررسی کنید
نام‌های عمومی کار می‌کنند اما نام‌های داخلی ناموفق‌اند سرور DNS داخلی و پیکربندی مسیریابی دامنه را بررسی کنید

پیش از هر تغییر، تنظیمات اصلی را ذخیره کنید. پس از آن، همان پرس‌وجو و همان عمل در برنامه را تکرار کنید و تغییرات را ثبت کنید. اگر نتیجه بدتر شد، تنظیمات قبلی را بازگردانید. از بازنشانی کل دیوار آتش یا تغییر هم‌زمان چند جزء شبکه خودداری کنید.

اگر از یک برنامه پراکسی جداگانه نیز استفاده می‌کنید، برای راهنمایی مرتبط با پیکربندی به راهنمای عیب‌یابی Clash مراجعه کنید. آن پیکربندی را از آزمایش WireGuard جدا نگه دارید تا نتیجه قابل‌فهم بماند.

روند بالا مخصوص ابزارهای WireGuard در Linux و systemd-resolved است. از بخش‌هایی استفاده کنید که با نرم‌افزار مدیریت‌کننده تونل شما مطابقت دارند.