سیستم نام دامنه (DNS) یک بخش اصلی زیرساخت وب است و ترجمه نام‌های دامنه به آدرس‌های IP را انجام می‌دهد. به عبارت دیگر DNS دفترچه تلفن اینترنت است؛ کامپیوترهای موجود در یک شبکه برای اتصال به یکدیگر از آدرسهای IP استفاده می کنند، ولی به یاد داشتن آدرس های IP کامپیوترهای یک شبکه برای افرادی که قصد اتصال به آنان را دارند بسیار دشوار است. مثلا به خاطر سپردن نام دامنه JeyServer.com بسیار ساده تر از به خاطر سپردن آدرس IP آن (5.196.204.147) است. به همین علت اغلب ما برای اتصال به سایت ها، نام دامنه آن را وارد می کنیم.

هر زمان که شما آدرس یک وب‌سایت را در مرورگر خود وارد می‌کنید، مرورگر شما از «DNS سرور» آی پی سایت را درخواست می‌کند و پس از دریافت آی پی سایت، به آن متصل می‌شود؛ در حالت عادی، این DNS سرورها از سمت ISP یا سرویس دهنده اینترنت شما تعیین می‌شوند که ممکن است کند باشند یا اطلاعات آنها بروز نباشد؛ بنابراین بهتر است از DNS سرورهای دیگری استفاده کنیم.

در این آموزش می‌خواهیم نحوه تغییر DNS سرور سیستم‌عامل اوبونتو دسکتاپ و سرور را مورد بررسی قرار دهیم.

 

چند DNS سرور محبوب و رایگان دنیا عبارت اند از:

Google (8.8.8.8, 8.8.4.4)
Cloudflare (1.1.1.1 and 1.0.0.1)
OpenDNS (208.67.222.222, 208.67.220.220)

 

تنظیم DNS سرور در اوبونتو دسکتاپ

تنظیم نیم سرورهای DNS در کامپیوترهای دسکتاپی اوبونتو 18.04 بسیار آسان است و نیازی به دانش فنی ندارد. برای این کار کافی ست مراحل زیر را دنبال کنید:
1. پنجره تنظیمات را باز کنید.
2. اگر به یک شبکه WiFi متصل هستید، بر روی بخش "Wi-FI" کلیک نمایید. در غیر این صورت، اگر اتصال سیمی دارید، روی بخش "Network" کلیک کنید.
3. ارتباطی را که می‌خواهید نیم سرورهای DNS آن را تنظیم کنید انتخاب نموده و بر روی آیکون چرخدنده کلیک کنید تا Network Manager باز شود.
4. بخش تنظیمات IPv4 را انتخاب کنید.
5. گزینه Automatic مربوط به DNS را غیرفعال کنید و آدرس‌های IP نام‌های دامنه DNS را بصورت جدا شده با یک کاما، وارد نمایید. در این جا ما از نیم سرورهای Google DNS استفاده خواهیم کرد:

6. برای ذخیره تغییرات، روی دکمه "Apply" کلیک کنید.
اگر می‌خواهید به تنظیمات قبلی خود برگردید، Network Manager را باز کنید، به تنظیمات IPv4 بروید و گزینه "Automatic" مربوط به DNS را فعال کنید.

 

تنظیم نیم سرورهای DNS در سرور اوبونتو

هر زمان که بخواهید DNS را در لینوکس پیکربندی کنید، می‌توانید به این صورت عمل کنید که فایل /etc/resolv.conf را باز کرده، اطلاعات مورد نظر را ویرایش نمایید و فایل را ذخیره کنید؛ اما باید بدانید که این فایل یک symlink (معادل shortcut در ویندوز) است که توسط سرویس systemd-resolved کنترل می‌شود و نباید به صورت دستی ویرایش شود.
systemd-resolved سرویسی است که ترجمه نام DNS را برای سرویس‌ها و برنامه‌های محلی ارائه می‌دهد و می‌تواند با Netplan، ابزار پیش فرض مدیریت شبکه در اوبونتو 18.04، پیکربندی شود.
فایل‌های پیکربندی Netplan در دایرکتوری /etc/netplan ذخیره می‌شوند. احتمالاً یک یا دو فایل YAML در این دایرکتوری خواهید دید. نام فایل ممکن است از یک راه اندازی تا راه اندازی بعدی متفاوت باشد. معمولاً این فایل به نام 01-netcfg.yaml یا 50-cloud-init.yaml  است؛ اما در سیستم‌های مختلف ممکن است متفاوت باشد.
این فایل‌ها به شما امکان پیکربندی رابط شبکه از جمله آدرس IP، gateway، سرورهای نام DNS و ... را می‌دهند.
برای پیکربندی سرورهای نامDNS ، فایل پیکربندی رابط را با ویرایشگر متن خود با استفاده از دستور زیر باز کنید:

sudo nano /etc/netplan/01-netcfg.yaml

 

اطلاعات فایل چیزی شبیه به محتوای زیر خواهد بود:


network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.121.199/24
      gateway4: 192.168.121.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

برای پیکربندی سرورهای نام DNS رابط، آدرس‌های IP کنونی در قسمت nameservers را به سرورهای DNS دلخواه خود تغییر دهید. به عنوان مثال، اگر می‌خواهید از سرورهای DNS مربوط به Cloudflare استفاده کنید، خط مربوط به آدرس را به صورت زیر تغییر دهید:

nameservers:
          addresses: [1.1.1.1, 1.0.0.1]

سرورهای DNS باید با استفاده از کاما جدا شوند. می‌توانید بیش از دوسرور نام نیز اضافه کنید.
اگر این اطلاعات وجود نداشته باشند، زیر بخش نام رابط اضافه می‌شوند. هنگام ویرایش فایل‌های Yaml مطمئن شوید که مطابق استانداردهای تورفتگی کد YAML عمل می‌کنید؛ چون اگر این فایل را بر اساس این ساختار ویرایش نکنید، Netplan قادر به تحلیل فایل نخواهد بود.
سپس با ذخیره فایل، تغییرات را اعمال نمایید:

sudo netplan apply

Netplan فایل‌های پیکربندی را برای سرویس systemd-resolved تولید می‌کند.
برای تأیید اینکه DNS جدید تنظیم شده است یا خیر، دستور زیر را اجرا کنید:

systemd-resolve --status | grep 'DNS Servers' -A2

systemd-resolve -status اطلاعات زیادی را چاپ می‌کند که ما می‌توانیم با استفاده از grep تنها قسمت "سرورهای DNS" را مشاهد نماییم. خروجی چیزی شبیه به خطوط زیر خواهد بود:

DNS Servers: 1.1.1.1
                      1.0.0.1