در این آموزش، به نحوه نصب و استفاده از برنامه resolvconf برای تنظیم سرور عنوان DNS دائمی در فایل /etc/resolv.conf در توزیع‌های لینوکس دبیان و اوبونتو خواهیم پرداخت. با ما همراه باشید.

/etc/resolv.conf فایل تنظیمات اصلی برای کتابخانه DNS name resolver محسوب می‌شود. resolver در واقع، مجموعه‌ای از توابع در کتابخانه C است که دسترسی به سیستم نامگذاری دامین اینترنت یا DNS را فراهم می‌کند. این توابع به گونه‌ای تنظیم شده که موارد ورودی در فایل /etc/hosts یا برخی سرو‌رهای نامگذاری DNS را بررسی کنند و یا اینکه، از سرویس پایگاه داده اطلاعات شبکه یا NIC استفاده نمایند.

در سیستم‌های مدرن مبتنی بر لینوکس که از ابزار مدیریت سیستم و سرویس systemd استفاده می‌کنند، DNS یا سرویس‌های تحلیل نام برای کمک به اپلیکیشن‌های محلی با استفاده از سرویس systemd-resolved ارائه شده است. این سرویس به صورت پیش‌فرض دارای چهار حالت مختلف برای مدیریت تحلیل نام دامین است. همچنین به صورت پیش‌فرض از فایل systemd DNS stub در آدرس /run/systemd/resolve/stub-resolv.conf استفاده می‌شود.

فایل حاوی آدرس محلی 127.0.0.53 به عنوان تنها سرور DNS است. این ‌آدرس به فایل /etc/resolv.conf ارجاع داده می‌شود که به منظور اضافه‌کردن عناوین سرور توسط سیستم مورد استفاده قرار می‌گیرد.

در صورتی که فرمان ls زیر را برای /etc/resolv.conf اجرا کنید، مشاهده خواهید کرد که این فایل یک لینک symlink به فایل /run/systemd/resolve/stub-resolv.conf است.


$ ls -l /etc/resolv.conf


lrwxrwxrwx 1 root root 39 Feb 15  2019 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

البته با توجه به اینکه /etc/resolv.conf به صورت غیرمستقیم توسط سرویس systemd-resolved مدیریت می‌شود و در برخی موارد نیز زیر نظر سرویس شبکه قرار می‌گیرد (به وسیله initscripts یا NetworkManager)،  هر گونه تغییر دستی توسط کاربر نمی‌تواند به صورت دائمی یا مدت زمان مشخصی ذخیره شود.

چرا باید فایل /etc/resolv.conf را ویرایش کنیم؟

دلیل اصلی این موضوع این است که تنظیمات DNS سیستم معمولاً به‌درستی انجام نشده‌اند. همچنین ممکن است ترجیح دهید از عناوین سرور مخصوص به خودتان استفاده کنید. فرمان cat زیر نشان‌دهنده عنوان سرور پیش‌فرض در فایل /etc/resolv.conf در سیستم نمونه اوبونتو خواهد بود.


$ cat /etc/resolv.conf

بررسی سروری‌های عنوان DNS

بررسی سروری‌های عنوان DNS

در اینجا، وقتی اپلیکیشن‌های محلی مانند ابزار مدیریت بسته APT سعی در دسترسی به FQDN ها در شبکه محلی دارند، نتیجه حاوی پیغام خطای “Temporary failure in name resolution” مطابق تصویر زیر خواهد بود.

مشکل موقتی در تحلیل عنوان سرور DNS

مشکل موقتی در تحلیل عنوان سرور DNS

همین اتفاق در هنگام استفاده از فرمان ping نیز رخ می‌دهد.


$ ping google.com

مشکل موقت در تحلیل نام

مشکل موقت در تحلیل نام

بنابراین، وقتی یک کاربر می‌خواهد به صورت دستی سرور‌های عنوان DNS را تنظیم کند، این تغییرات به صورت دائمی نخواهند بود. در واقع، این تنظیمات بعد از یک بار شروع مجدد سیستم، از دست خواهند رفت. برای غلبه بر این مشکل می‌توانید ابزار reolvconf را نصب کنید تا بتوانید تغییرات را به صورت دائمی اِعمال نمایید.

به منظور نصب بسته resolvconf، ابتدا باید تمام سرور‌های عنوان DNS را به صورت دستی در فایل /etc/resolv.conf تنظیم کنید. به این ترتیب می‌توانید به FQDM های سرور‌های منبع اوبونتو در اینترنت دسترسی داشته باشید.


nameserver 8.8.4.4

nameserver 8.8.8.8

نصب resolvconf در اوبونتو و دبیان

ابتدا بسته‌های نرم‌افزاری سیستم را بروزرسانی می‌کنیم. سپس با استفاده از فرمان‌های زیر resolvconf را از منابع رسیمی نصب خواهیم کرد.


$ sudo apt update

$ sudo apt install resolvconf

وقتی نصب ابزار resolvconf به پایان رسید، systemd به صورت خودکار resolvconf.service را اجرا و فعال می‌کند. برای بررسی وضعیت اجرای این سرویس می‌توانید از فرمان زیر کمک بگیرید.


$ sudo systemctl status resolvconf.service

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


$ sudo systemctl start resolvconf.service

$ sudo systemctl enable resolvconf.service

$ sudo systemctl status resolvconf.service

بررسی وضعیت سرویس ابزار resolvconf

بررسی وضعیت سرویس ابزار resolvconf

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

سپس نوبت به تنظیم فایل تنظیمات /etc/resolvconf/resolv.conf.d/head می‌رسد.


$ sudo nano /etc/resolvconf/resolv.conf.d/head

موارد زیر را در آن اضافه کنید.


nameserver 8.8.8.8

nameserver 8.8.4.4

تنظیم سرور عنوان DNS دائمی در Resolvconf

تنظیم سرور عنوان DNS دائمی در Resolvconf

حالا تغییرات را ذخیره کرده و سرویس resolvconf.service را دوباره راه‌اندازی کنید. همچنین می‌توانید سیستم را ریبوت نمایید.


$ sudo systemctl start resolvconf.service

اکنون با بررسی فایل /etc/resolv.conf متوجه می‌شوید که سرورهای عنوان وارد شده به صورت دائمی در آن ذخیره شده‌اند. از این بعد، هیچگونه مشکلی در تحلیل نام سرور DNS در سیستم شما وجود نخواهد داشت.

سرورهای عنوان DNS دائمی

سرورهای عنوان DNS دائمی

امیدواریم که این مطلب در مورد تنظیم سرور عنوان DNS دائمی در اوبونتو و دبیان مورد توجه شما قرار گرفته باشد. حتماْ مطالب آینده وبلاگ آریانت را در این زمینه دنبال نمایید.م