دستور Host در لینوکس به عنوان ابزار مفید دیگری برای تست DNS می باشد. بدین منظور از آخرین نسخه لینوکس مینت 19.1 (مبنی بر اوبونتو) استفاده شده است. برای افرادی که به ویندوز عادت دارند، دستور Host مشابه و البته کمی پیشرفتهتر از دستور nslookup می باشد و عملا جایگزین nslookup در سیستمعاملهای مبتنی بر لینوکس شده است. شما میتوانید از آن برای بررسی انواع مختلف رکوردهای DNS استفاده کنید.
دستور Host در لینوکس چیست؟
دستور Host، نرمافزاری با رابط خط فرمان بوده که برای تست DNS طراحی گردیده است. این ابزار توسط Internet Systems Consortium ایجاد شده و به عنوان یک نرمافزار آزاد و با مجوز ISC منتشر میشود. همانطور که اشاره شد، دستور Host در لینوکس ابزاری مفید برای عیبیابی شبکه است که میتوانید از آن برای بررسی انواع مختلف رکوردهای DNS استفاده کنید. شما میتوانید توسط آن رکوردهای A یا AAAA (برای دریافت آدرس IP یک دامنه) و سایر رکوردها مانند Name Servers، SOA، رکوردهای MX و موارد دیگر را مشاهده نمایید.

تصویر(1)
هدف دستور Host در لینوکس
هدف اصلی دستور Host در لینوکس این است که از سرورهای Domain Name System (DNS) برای تبدیل نامهای دامنه به آدرسهای IP یا برعکس استفاده کند. این ابزار، دستوری است که میتواند برای بازیابی اطلاعات DNS یک Hostname (نام میزبان) یا دامنه، مانند آدرس IP، نام های مستعار (aliases) یا رکوردهای تبادل ایمیل (MX) استفاده شود.
دستور Host ابزاری مفید برای توسعهدهندگان و متخصصان IT است که نیازمند عیبیابی مشکلات شبکه یا اشکالزدایی برنامههای وابسته به DNS هستند. با استفاده از دستور Host، آنها به سرعت میتوانند بررسی کنند که آیا Hostname به آدرس IP صحیح اشاره میکند یا اینکه مشکلی در فرآیند ترجمه DNS وجود دارد.
علاوه بر این، دستور Host میتواند برای انجام درخواستهای پیشرفته DNS، مانند بازیابی انواع مختلف رکوردهای DNS و تنظیم مقدار تایم اوت استفاده شود. این ویژگی آن را به ابزاری چندمنظوره که در سناریوهای مختلفی همچون جستجوهای ساده DNS تا وظایف پیچیدهتر عیبیابی شبکه کاربرد دارد، تبدیل میکند.
نحو دستور Host در لینوکس
برای مشاهده نحو دستور Host در لینوکس و قابلیتهای موجود آن، کافی است دستور host را تایپ کرده و Enter را فشار دهید:
host [-aCdlnrsTwv] [-c class] [-N ndots] [-R number] [-t type] [-W time] [-m flag] [-4] [-6] hostname [server]

تصویر(2)
قابلیتهای دستور Host در لینوکس
در تصویر زیر میتوانید تمام قابلیتهای موجود را مشاهده کنید. اگر فراموش کردید که چه گزینههایی وجود دارند، کافی است دستور host را در ترمینال تایپ نمایید.

تصویر(3)
مثالهای دستور Host
برای تمام این مثالها از دامنه google.com استفاده شده که شما میتوانید آن را با دامنه دلخواه خود جایگزین نمایید. در ادامه چندین مثال ذکر شده که ممکن است برای شما مفید باشند.
جستجوی آدرس IP دامنه
برای مشاهده آدرس IP یک دامنه میتوانید دستور زیر را وارد کنید:
host google.com
این دستور محتویات رکوردهای A و AAAA را نمایش داده و نتایج IPv4 و IPv6 را برای دامنه دریافت خواهید کرد.

تصویر(4)
رکورد SOA یا Start of Authority
برای مشاهده رکوردهای SOA از دستور زیر استفاده کنید. رکورد SOA برای انتقال Zone استفاده میشود. فقط یک رکورد SOA میتواند در هر فایل Zone وجود داشته باشد بنابراین اگر بیش از یک رکورد مشاهده نمودید، لازم است تا مشکل را رفع کنید.
host -C google.com

تصویر(5)
بررسی سرورهای نام (name servers) دامنه
برای بررسی name server های دامنه، از دستور زیر استفاده کنید:
host -t ns google.com
این دستور name server های دامنه میزبان را نمایش میدهد. از گزینه -t برای مشخص کردن نوع (type) کوئری استفاده میشود. هنگامی که تمام سرورهای نام دامنه موجود شناسایی شد، میتوانید آنها را به صورت جداگانه تست کنید.

تصویر(6)
بررسی یک سرور نام خاص
برای مثال، اگر بخواهید بررسی کنید که آیا سرور ns1 در دسترس است یا مشکلی دارد، دستور زیر را وارد نمایید:
host google.com ns1.google.com

تصویر(7)
رکورد CNAME
برای یافتن رکورد CNAME از دستور زیر استفاده کنید:
host -t cname mail.google.com
این دستور رکوردهای CNAME را نمایش خواهد داد که یکی از نامهای مستعار (alias) را به آدرس اصلی پیوند میدهند.

تصویر(8)
رکورد MX
برای بررسی سرور ایمیل ورودی، از دستور زیر استفاده کنید. این دستور مشخص می کند که آیا سرور به درستی پاسخ میدهد یا خیر.
host -n -t mx google.com

تصویر(9)
رکورد TXT
برای بررسی رکوردهای TXT می توانید از دستور زیر استفاده کنید. رکوردهای TXT مختلفی برای اعتبارسنجی وجود دارند. یکی از آنها رکورد SPF است که نشان میدهد چه کسی میتواند از دامنه ای خاص، ایمیل ارسال کند.
host -t txt google.com

تصویر(10)
تعیین زمان انتظار برای یک کوئری
جهت تعیین مدت زمان انتظار برای دریافت پاسخ، میتوانید از گزینه -w (حرف کوچک) به منظور انتظار نامحدود یا W- (حرف بزرگ) همراه با زمان بر حسب ثانیه استفاده کنید.
host -T -W 10 google.com

تصویر(11)
جستجوی معکوس
همچنین می توانید با بررسی آدرس IP، میزبان آن را بیابید. برای عملکرد صحیح سرور ایمیل، شما باید Reverse Lookup Zone را تنظیم کرده باشید.
host 216.58.194.142

تصویر(12)
دستور Host برای مشاهده تمامی رکوردهای DNS یک دامنه
برای مشاهده تمامی رکوردهای DNS یک دامنه، از دستور زیر استفاده کنید:
host -a google.com
با این دستور، اطلاعات مربوط به انواع مختلف رکوردها مانند NS، AAAA، MX و غیره نمایش داده میشود که توسط آنها میتوانید به طور جداگانه هر رکورد DNS را بررسی نمایید.

تصویر(13)
تغییر تعداد پیشفرض تلاشها از 1 به مقدار دلخواه
برای تغییر تعداد تلاشها از 1 به تعداد دلخواه، دستور زیر را استفاده کنید:
host -R 8 google.com
در این مثال، تعداد تلاشها از 1 به 8 تغییر یافته است که در نتیجه آن، دامنه تا 8 بار فرصت پاسخگویی دارد. وقتی که دامنه پاسخ بدهد، تلاشها متوقف خواهند شد.
R- تعداد تلاشهایی که در صورت عدم موفقیت یک تلاش انجام میشوند را مشخص می کند. اگر یکی از تلاشها موفق باشد، دستور متوقف میشود.
نکات عیبیابی دستور Host در لینوکس
ممکن است هنگام استفاده از دستور Host در لینوکس برای اجرای کوئریهای DNS، با مشکلات مختلفی مواجه شوید. در ادامه برخی نکات عیبیابی برای حل مشکلات رایج آورده شده است:
- دامنه به درستی شناسایی (ترجمه) نمیشود: اگر دامنهای به درستی ترجمه نمیشود، ابتدا اطمینان حاصل کنید که نام دامنه به درستی تایپ شده است. سپس اتصال شبکه خود را بررسی نموده و اطمینان حاصل کنید که سرورهای DNS به درستی پیکربندی شدهاند. برای مقایسه میتوانید از ابزارهای DNS دیگری مانند dig یا nslookup استفاده کنید. اگر مشکل همچنان ادامه داشت، ممکن است به دلیل تاخیر در DNS propagation باشد که پس از اعمال تغییرات در DNS می تواند تا 48 ساعت زمان ببرد.
- تفسیر پیامهای خطا: پیامهای خطا میتوانند نکاتی در مورد مشکل ارائه دهند. به عنوان مثال، پیام "Host not found" نشان میدهد که نام دامنه وجود ندارد یا DNS propagation کامل نشده است. پیام "Connection timed out" نشان می دهد که مشکلی در سرور DNS به دلیل اختلالات شبکه یا تنظیمات نادرست وجود دارد.
- تاخیر در DNS propagation: ممکن است پس از اعمال تغییرات DNS، مدتی زمان ببرد تا در سیستم DNS اینترنت انتشار یابد. برای مشاهده نتیجه اعمال تغییرات میتوانید از ابزارهایی مانند whois یا بررسی کننده DNS استفاده کنید.
مزایای استفاده از دستور Host در لینوکس
دستور Host ابزاری چندمنظوره و کارآمد برای عیبیابی و تشخیص مشکلات DNS است که مزایای زیادی برای مدیران سیستم، توسعهدهندگان و متخصصان IT دارد. در لیست زیر برخی از مزایای کلیدی دستور Host در لینوکس آورده شده است:
- سهولت استفاده: دستور Host بسیار ساده بوده و نحو آن به راحتی قابل درک است. این ابزار انتخابی عالی برای مبتدیان و بررسی سریع DNS بدون نیاز به پیکربندی پیچیده می باشد. خروجیهای واضح آن باعث میشود تا نتایج به راحتی قابل تفسیر باشند.
- کوئریهای جامع DNS: با دستور Host میتوان انواع مختلف رکوردهای DNS مانند A، AAAA، MX، NS، CNAME و TXT را استخراج کرد. این انعطافپذیری به متخصصان IT اجازه میدهد تا اطلاعات دقیق DNS را برای تحلیل و تشخیص مشکلات جمعآوری کنند.
- گزینههای سفارشیسازی پیشرفته: این ابزار برای تغییر پارامترهای کوئری، گزینههایی مانند مدت زمان انتظار، تعداد تلاشها و نوع رکوردهای DNS دارد. این ویژگیها به شما کمک میکنند تا کوئریها را با نیازهای عیبیابی خاص خود تطبیق دهید.
- سبک و آماده استفاده: از آنجا که دستور Host یک ابزار خط فرمان (command-line) است، بسیار سبک بوده و به منابع زیادی در سیستم نیاز ندارد. همچنین معمولا در بیشتر توزیعهای لینوکس، از پیش نصب شده و آماده استفاده می باشد.
- پشتیبانی از جستجوی معکوس: قابلیت انجام جستجوهای معکوس (تبدیل آدرسهای IP به نام دامنه) برای بررسی پیکربندیهای DNS، در سرورهای ایمیل و عیبیابی شبکه، بسیار مفید است.
استفاده از دستور Host در لینوکس تواناییهای عیبیابی شما را بهبود بخشیده و عملکرد DNS در شبکه شما را بهینه میکند.
جایگزینهای دستور Host در لینوکس
چندین ابزار دیگر برای بررسی DNS وجود دارند که میتوانید به جای دستور Host از آنها استفاده کنید. محبوبترین آنها عبارتند از:
- دستور Nslookup: این ابزار در سیستمعاملهای لینوکس، macOS و ویندوز موجود بوده و استفاده از آن بسیار ساده است. این گزینه انتخابی قابل اعتماد و همیشه در دسترس برای جستجوهای DNS می باشد.
- دستور Dig: برخی کاربران، این ابزار را به دلیل قابلیت های جانبی آن ترجیح میدهند. این ابزار میتواند انواع مختلف رکوردهای DNS را استخراج کند.
- دستور Ping: اگرچه این ابزار به اندازه سایر ابزارها جامع نیست اما برای بررسی در دسترس بودن دامنه یا آدرس IP با ارسال بسته و مشاهده نحوه پاسخ آن، مفید است.
در اختیار داشتن گزینههای متعدد، به خصوص اگر چندین سایت را مدیریت میکنید یا به عیبیابی انواع مختلف مشکلات شبکه نیاز دارید، میتواند مفید باشد.
محدودیتهای دستور Host
اگرچه دستور Host در لینوکس یک ابزار سریع و ساده برای بررسی اطلاعات پایه DNS است اما محدودیتهایی دارد که باید از آنها آگاه باشید.
اول اینکه دستور Host خروجی کمتری نسبت به ابزارهای پیشرفتهای مانند dig ارائه میدهد. این ابزار جهت دریافت نتایج سریع و قابل درک برای انسان عالی است اما پاسخ DNS کامل، فلگها یا جزئیات اعتبارسنجی DNSSEC را نمایش نمیدهد. به همین دلیل ممکن است این ابزار برای تجزیه و تحلیل کامل مسیرهای ترجمه DNS و سناریوهای پیچیده اشکالزدایی مناسب نباشد.
دومین محدودیت این است که دستور Host گزینههای فرمتدهی (formatting) و فیلترینگ محدودی ارائه میدهد که آن را کمتر برای اسکریپتنویسی پیشرفته یا نظارت خودکار در مقیاس وسیع مناسب میسازد. اگرچه میتوان از آن در اسکریپتها استفاده کرد اما خروجی آن به اندازه ابزارهای پیشرفته DNS قابل پیشبینی یا ساختارمند نیست.
محدودیت دیگر این است که دستور Host به Resolver (مترجم DNS) مشخص شده (یا مترجم پیشفرض سیستم) متکی می باشد، به این معنی که ممکن است گاهی نتایج کششده و تغییرات جدید DNS را پنهان کنند. این موضوع میتواند در طول DNS propagation یا عیبیابی مشکلات گمراهکننده باشد.
جمع بندی
نهایتا، اگرچه دستور Host به طور گستردهای در سیستمهای لینوکس در دسترس است اما کمتر در محیطهای چندپلتفرمی استفاده میشود که این موضوع میتواند یک نقطه ضعف هنگام کار با سیستمعاملهای مختلف باشد. درک این محدودیتها به شما کمک میکند تا ابزار DNS مناسب را برای هر سناریوی عیبیابی انتخاب کنید.