Skip to content

رفع مشکل DNS در Pop!_OS با غیرفعال کردن systemd-resolved

این مشکل در Pop!_OS معمولاً به دلیل تداخل یا ناسازگاری بین systemd-resolved و تنظیمات سفارشی DNS یا شبکه‌های پیچیده (مانند VPN) به وجود می‌آید. systemd-resolved به‌طور خودکار فایل /etc/resolv.conf را مدیریت می‌کند و گاهی اوقات ممکن است تنظیمات DNS مورد نظر کاربر را نادیده بگیرد یا به درستی به سرورهای DNS متصل نشود. با غیرفعال کردن systemd-resolved و سپردن مدیریت DNS به `NetworkManager`، این تداخلات برطرف شده و سیستم از تنظیمات DNS پایدارتر و قابل‌اعتمادتر استفاده می‌کند که مشکل DNS را حل می‌کند.

غیرفعال کردن systemd-resolved

مراحل:

1. توقف و غیرفعال کردن systemd-resolved:

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

2. ویرایش فایل NetworkManager.conf:

sudo sed -i '3 i\dns=default' /etc/NetworkManager/NetworkManager.conf

3. حذف و جایگزینی resolv.conf:

sudo rm /etc/resolv.conf
sudo systemctl restart NetworkManager
sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

نتیجه: مدیریت DNS به NetworkManager سپرده شده و مشکلات احتمالی DNS حل می‌شود.

برای بازگرداندن تنظیمات به حالت اولیه و فعال کردن دوباره `systemd-resolved`:

برای بازگرداندن تنظیمات به حالت اولیه و فعال کردن دوباره `systemd-resolved`، مراحل زیر را دنبال کنید:

1. توقف و حذف تنظیمات `NetworkManager`:

sudo rm /etc/resolv.conf
sudo sed -i '/dns=default/d' /etc/NetworkManager/NetworkManager.conf

2. فعال‌سازی و راه‌اندازی `systemd-resolved`:

sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

3. ایجاد لینک سمبولیک برای `resolv.conf`:

sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

این مراحل systemd-resolved را دوباره فعال کرده و مدیریت DNS به حالت اولیه بازمی‌گردد.

در صورت فعال بودن systemd-resolved ممکن است مشکلات زیر به وجود بیاید:

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

 2. عدم بروزرسانی صحیح resolv.conf:
– مشکل: گاهی اوقات پس از تغییر شبکه (مانند اتصال به یک شبکه Wi-Fi جدید یا تغییر تنظیمات DNS)، فایل /etc/resolv.conf به‌درستی بروزرسانی نمی‌شود. این موضوع می‌تواند منجر به ناتوانی در دسترسی به اینترنت یا حل نشدن نام دامنه‌ها شود.
– علت: systemd-resolved ممکن است به دلیل cache (ذخیره موقت) یا مشکلات در ارتباط با `NetworkManager`، تغییرات جدید DNS را اعمال نکند.

 3. مشکلات با DNS‌های سفارشی:
– مشکل: وقتی که کاربران DNS‌های سفارشی (مانند Cloudflare یا Google DNS) را به صورت دستی تنظیم می‌کنند، systemd-resolved ممکن است این تنظیمات را نادیده بگیرد و همچنان از DNS‌های پیش‌فرض یا محلی استفاده کند.
– علت: systemd-resolved به‌طور خودکار تنظیمات DNS را مدیریت می‌کند و ممکن است تنظیمات دستی را بازنویسی یا نادیده بگیرد.

 4. عدم سازگاری با برخی نرم‌افزارها:
– مشکل: برخی نرم‌افزارها یا سرویس‌های قدیمی ممکن است با systemd-resolved ناسازگاری داشته باشند و نتوانند به درستی با آن کار کنند، که می‌تواند منجر به عدم توانایی در حل نام دامنه‌ها شود.
– علت: systemd-resolved از ویژگی‌های پیشرفته‌ای مانند DNS over TLS پشتیبانی می‌کند که ممکن است با نرم‌افزارهایی که به DNS‌های سنتی متکی هستند، سازگار نباشد.

این مشکلات ممکن است باعث شود که کاربران تصمیم بگیرند systemd-resolved را غیرفعال کرده و به روش‌های سنتی‌تر مدیریت DNS بازگردند.

This Post Has 2 Comments

    1. برای حل مشکل عدم تشخیص `sudo` توسط cmd، مراحل زیر را انجام دهید:

      1. **بررسی نصب بودن `sudo`:**
      در ترمینال تایپ کنید:
      “`bash
      which sudo
      “`
      اگر مسیری نشان داده نشد، باید `sudo` را دوباره نصب کنید.

      2. **نصب دوباره `sudo`:**
      اگر به ریشه دسترسی دارید، وارد شوید:
      “`bash
      su –
      apt update
      apt install sudo
      “`

      3. **بررسی فایل sudoers:**
      مطمئن شوید که فایل `/etc/sudoers` درست تنظیم شده است. برای ویرایش امن از دستور زیر استفاده کنید:
      “`bash
      visudo
      “`

      4. **بررسی عضویت در گروه sudoers:**
      کاربر را به گروه `sudo` اضافه کنید:
      “`bash
      usermod -aG sudo username
      “`

      این مراحل باید مشکل شما را حل کنند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت توسط reCAPTCHA و گوگل محافظت می‌شود حریم خصوصی و شرایط استفاده از خدمات اعمال.

The reCAPTCHA verification period has expired. Please reload the page.

Back To Top