نحوه نصب و استفاده از دستورات dig و nslookup در لینوکس

dig و nslookup در لینوکس

در دنیای شبکه و مدیریت سرور، ابزارهای خط فرمان برای بررسی وضعیت دامنه‌ها و سرورهای DNS از اهمیت بالایی برخوردارند. دو ابزار پرکاربرد در این زمینه dig و nslookup هستند. این دو دستور به مدیران شبکه و متخصصان لینوکس کمک می‌کنند تا بتوانند به‌سرعت وضعیت رکوردهای DNS را بررسی، مشکلات ارتباطی را شناسایی و پیکربندی‌های دامنه را تحلیل کنند.

در این مطلب به‌صورت گام‌به‌گام با روش نصب و استفاده از دستورات dig و nslookup در لینوکس آشنا می‌شویم و تفاوت‌ها، گزینه‌های مهم و کاربردهای عملی آنها را بررسی خواهیم کرد.

اهمیت ابزارهای DNS در لینوکس

هر بار که نام دامنه‌ای مانند example.com را در مرورگر وارد می‌کنید، سیستم شما باید آن را به یک آی‌پی ترجمه کند. این فرآیند توسط Domain Name System (DNS) انجام می‌شود. اگر در شبکه یا وب‌سایت خود با خطاهای ارتباطی، تاخیر در پاسخ‌دهی یا اختلال در سرویس‌ها مواجه شوید، اولین گام در عیب‌یابی معمولا بررسی وضعیت DNS است.

در لینوکس، دو ابزار اصلی برای انجام این بررسی‌ها وجود دارد:

  • dig (Domain Information Groper)
  • nslookup (Name Server Lookup)

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

نحوه نصب دستور dig در لینوکس

در بسیاری از توزیع‌های لینوکسی، دستور dig به‌صورت پیشفرض نصب نیست. این ابزار بخشی از بسته‌ی dnsutils یا bind-utils است (بسته به توزیع مورد استفاده).

نصب در Debian / Ubuntu

برای نصب dig در سیستم‌های مبتنی بر Debian یا Ubuntu، کافی است دستور زیر را اجرا کنید:

sudo apt update
sudo apt install dnsutils -y

پس از نصب، می‌توانید با دستور زیر از صحت نصب اطمینان حاصل کنید:

dig -v

اگر نسخه ابزار نمایش داده شود، نصب با موفقیت انجام شده است.

نصب در CentOS / RHEL / Fedora

در سیستم‌های مبتنی بر Red Hat یا CentOS از دستور زیر استفاده کنید:

sudo yum install bind-utils -y

و در نسخه‌های جدیدتر Fedora:

sudo dnf install bind-utils -y

با اجرای دستور dig در ترمینال می‌توانید بررسی کنید که نصب به‌درستی انجام شده باشد.

نحوه نصب دستور nslookup در لینوکس

دستور nslookup معمولا همراه با همان بسته‌هایی که dig را نصب می‌کنند، در سیستم موجود می‌شود.
در Debian/Ubuntu با نصب dnsutils و در CentOS با نصب bind-utils، ابزار nslookup نیز فعال می‌شود.

برای اطمینان از در دسترس بودن آن کافی است بنویسید:

nslookup google.com

اگر خروجی شامل آدرس IP سرور گوگل باشد، یعنی ابزار آماده استفاده است.

نحوه استفاده از دستور dig در لینوکس

ابزار dig برای بررسی رکوردهای DNS یک دامنه به‌کار می‌رود. ساختار کلی دستور به شکل زیر است:

dig [domain] [record type]

مثال ساده

برای بررسی رکورد A مربوط به یک دامنه، کافی است بنویسید:

dig google.com

خروجی شامل چند بخش است، اما مهمترین بخش، ANSWER SECTION است که IP دامنه را نمایش می‌دهد:

;; ANSWER SECTION:
gogole.com. 16 IN A 142.251.140.174

بررسی انواع رکوردها

می‌توانید نوع رکورد دلخواه را مشخص کنید:

  • رکورد MX برای ایمیل:
dig example.com MX
  • رکورد TXT برای احراز مالکیت یا SPF:
dig example.com TXT
  • رکورد NS برای نام‌سرورها:
dig example.com NS
  • رکورد CNAME برای نام مستعار:
dig www.example.com CNAME

درخواست از سرور DNS خاص

به‌صورت پیشفرض، dig از DNS سیستم شما استفاده می‌کند. اما می‌توانید سرور DNS دیگری را مشخص کنید. مثلا برای درخواست از سرور گوگل:

dig @8.8.8.8 example.com

این روش برای تست سرعت یا بررسی تفاوت پاسخ سرورهای مختلف مفید است.

نحوه استفاده از دستور nslookup در لینوکس

دستور nslookup ابزار قدیمی‌تری است، اما همچنان در بسیاری از آموزش‌ها و سیستم‌ها کاربرد دارد.

ساختار اصلی آن مشابه dig است:

nslookup [domain]

مثال ساده

برای بررسی IP دامنه:

nslookup google.com

خروجی مشابه زیر نمایش داده می‌شود:

Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: google.com
Address: 142.251.140.174
Name: google.com
Address: 2a00:1450:4001:804::200e

تغییر سرور DNS در nslookup

می‌توانید از سرور دیگری برای پرس‌وجو استفاده کنید:

nslookup example.com 1.1.1.1

در این مثال، درخواست از طریق DNS کلادفلر (۱.۱.۱.۱) ارسال می‌شود.

حالت تعاملی nslookup

با اجرای nslookup بدون هیچ پارامتری وارد حالت تعاملی می‌شوید. در این حالت می‌توانید چند دامنه مختلف را بدون خروج از ابزار بررسی کنید:

> set type=MX
> example.com
> set type=A
> google.com
> exit

تفاوت dig و nslookup

هر دو ابزار dig و nslookup برای بررسی و تحلیل رکوردهای DNS به کار می‌روند، اما از نظر ساختار، امکانات و میزان به‌روزبودن تفاوت‌های قابل توجهی با یکدیگر دارند. ابزار nslookup از ابزارهای قدیمی در سیستم‌های یونیکسی و لینوکسی به شمار می‌رود و سال‌هاست برای بررسی ساده رکوردهای دامنه استفاده می‌شود. در مقابل، dig نسخه‌ای پیشرفته‌تر و دقیق‌تر از همان ایده است که توسط پروژه BIND توسعه یافته و امروزه در اکثر توزیع‌های لینوکس به عنوان ابزار استاندارد DNS شناخته می‌شود.
مهمترین تفاوت میان این دو ابزار در نحوه نمایش خروجی است. دستور dig اطلاعات را با قالبی دقیق و مبتنی بر استانداردهای RFC نمایش می‌دهد و به کاربر امکان می‌دهد جزئیات بیشتری از پاسخ سرورهای DNS را مشاهده کند، از جمله مدت زمان پاسخ، تعداد رکوردها، مسیر انتقال درخواست و حتی اطلاعات مربوط به سرورهای میانی. در مقابل، خروجی nslookup ساده‌تر و کوتاه‌تر است و معمولا فقط شامل نام دامنه، آدرس IP و سرور پاسخ‌دهنده می‌شود.
از نظر توسعه و پشتیبانی نیز dig برتری دارد. ابزار nslookup سال‌هاست که در برخی توزیع‌ها به‌عنوان ابزاری قدیمی و منسوخ‌شده تلقی می‌شود و دیگر به‌روزرسانی منظم ندارد، در حالی‌که dig به طور فعال توسط جامعه BIND نگهداری و توسعه داده می‌شود. به همین دلیل، در محیط‌های حرفه‌ای و سرورهای مدرن لینوکسی معمولا توصیه می‌شود از dig استفاده شود.
در نهایت می‌توان گفت اگرچه nslookup همچنان برای کارهای ساده و سریع کاربرد دارد، اما dig به دلیل دقت، امکانات بیشتر، گزینه‌های قابل تنظیم و خروجی ساختاریافته، انتخاب بهتری برای مدیران سیستم و متخصصان شبکه است.

خرید VPS لینوکس با دسترسی کامل SSH و منابع اختصاصی، مناسب برای برنامه‌نویسان، توسعه‌دهندگان و مدیران سایت در پارسدو فراهم است.

گزینه‌های کاربردی در دستور dig

یکی از مزایای بزرگ dig، گزینه‌های متنوع آن است. در ادامه به چند مورد پرکاربرد اشاره می‌کنیم:

نمایش خلاصه فقط IP (گزینه +short)

اگر فقط آدرس IP برایتان مهم است، می‌توانید خروجی را خلاصه کنید:

dig +short example.com

بررسی مسیر پاسخ DNS (گزینه +trace)

برای دنبال‌کردن مسیر کامل درخواست از ریشه تا سرور نهایی، از گزینه +trace استفاده کنید:

dig +trace example.com

این گزینه برای عیب‌یابی تاخیر یا تنظیمات نادرست DNS بسیار مفید است.

نمایش اطلاعات زمانی و آماری

با گزینه +stats می‌توانید زمان پاسخ و تعداد رکوردهای دریافت‌شده را ببینید:

dig example.com +stats

نمونه‌های کاربردی در مدیریت سرور

بررسی صحت رکورد ایمیل (MX)

برای اطمینان از تنظیم صحیح رکوردهای میل‌سرور دامنه:

dig yourdomain.com MX +short

تست رکورد SPF یا DKIM

برای بررسی رکورد SPF

dig yourdomain.com TXT +short

اگر خروجی شامل عبارت “v=spf1” باشد، یعنی رکورد SPF تنظیم شده است.

بررسی وضعیت DNS از چند سرور مختلف

گاهی لازم است پاسخ DNS را از چند ناحیه جهان تست کنید:

dig @1.1.1.1 example.com +short
dig @8.8.8.8 example.com +short

مقایسه نتایج به شما کمک می‌کند تفاوت‌های کش DNS را متوجه شوید.

عیب‌یابی مشکلات DNS با dig و nslookup

فرض کنید وب‌سایت شما در برخی مناطق جهان در دسترس نیست. با ابزارهای dig و nslookup می‌توانید بررسی کنید آیا مشکل از DNS است یا از تنظیمات شبکه.

ابتدا رکورد دامنه را بررسی کنید

dig example.com A

در صورت نیاز رکورد NS را چک کنید

dig example.com NS

از چند سرور مختلف تست بگیرید

dig @8.8.8.8 example.com +short
dig @1.1.1.1 example.com +short

اگر پاسخ‌ها متفاوت باشند، احتمالا رکوردهای DNS شما در سرورهای ثانویه به‌روزرسانی نشده‌اند.

بهترین روش برای استفاده روزمره

اگر در زمینه مدیریت سرور، پشتیبانی دامنه یا عیب‌یابی وب‌سایت فعالیت دارید، بهتر است همیشه dig را در جعبه‌ابزار خود داشته باشید. برای کارهای سریع می‌توانید از اسکریپت‌های کوتاه استفاده کنید، مثلا:

#!/bin/bash
domain=$1
echo "Checking DNS records for: $domain"
dig +short $domain
dig +short $domain MX
dig +short $domain NS

این اسکریپت ساده می‌تواند وضعیت رکوردهای حیاتی دامنه را تنها با یک دستور برای شما نمایش دهد.

جمع‌بندی

ابزارهای dig و nslookup از مهم‌ترین ابزارهای خط فرمان در لینوکس برای بررسی و تحلیل رکوردهای DNS هستند.
درحالی‌که nslookup ابزاری ساده‌تر و قدیمی‌تر است، دستور dig امکانات پیشرفته‌تری مانند بررسی مسیر پاسخ، نمایش خروجی خلاصه و تحلیل دقیق رکوردها را فراهم می‌کند.
برای نصب این ابزارها کافی است بسته‌های dnsutils یا bind-utils را نصب کنید. سپس می‌توانید با چند دستور ساده، وضعیت دامنه، رکوردهای ایمیل، نام‌سرور و حتی مشکلات احتمالی DNS را شناسایی کنید.
در نهایت، تسلط بر dig و nslookup برای هر مدیر سرور لینوکسی یک مهارت ضروری محسوب می‌شود، زیرا این ابزارها پایه و اساس تحلیل و رفع خطاهای ارتباطی در وب و شبکه هستند.

نوشتن نظر

نوشتن دیدگاه

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