DNS (سیستم یا سرویس نام دامنه) یک سیستم یا سرویس نامگذاری غیر متمرکز سلسله مراتبی است که نام دامنه ها را به IP addresses در اینترنت یا یک شبکه خصوصی ترجمه می کند و به سروری که چنین سرویسی را ارائه می دهد DNS server نامیده می شود.
در این مقاله ، چگونگی راه اندازی Local DNS با استفاده از فایل هاست (/etc/hosts
) در سیستم های لینوکس برای وضوح دامنه محلی یا آزمایش وب سایت قبل از استفاده مستقیم، توضیح می دهد.
به عنوان مثال ، ممکن است بخواهید قبل از اینکه به صورت عمومی با تغییر پرونده /etc/hosts
در سیستم لوکال خود، وب سایت را با نام دامنه سفارشی به صورت لوکال آزمایش کنید تا نام دامنه را به آدرس IP سرور Local DNS که پیکربندی کرده اید، نشان دهید.
/etc/hosts یک پرونده سیستم عامل است که نام هاست یا نام دامنه را به آدرس IP ترجمه می کند. این برای آزمایش تغییرات وب سایت ها یا راه اندازی SSL قبل از استفاده وب سایت به صورت عمومی مفید است.
توجه: این روش تنها در صورتی جواب می دهد که هاست ها static IP address داشته باشند. بنابراین اطمینان حاصل کنید که static IP address را برای هاست های لینوکس یا گره های دارای سیستم عامل دیگر تنظیم کرده اید.
برای اهداف این مقاله، ما از دامنه، نام هاست و IP آدرس های زیر استفاده خواهیم کرد (از مقادیری استفاده کنید که برای تنظیم لوکال شما اعمال می شود).
Domain: example.com
Host 1: ubuntu.example.com 192.168.56.1
Host 2: centos.example.com 192.168.56.10
درک نام سرویس سوئیچ (Name Service Switch) در لینوکس
قبل از حرکت بیشتر، باید نکاتی را در مورد فایل مهم دیگری که /etc/nsswitch.conf است، درک کنید. این عملکرد نام سرویس سوئیچ (Name Service Switch) را فراهم می کند که ترتیب پرس و جو کردن خدمات برای جستجوی سرویس های نام را کنترل می کند.
پیکربندی براساس سفارش است. اگر فایل ها قبل از dns باشد، این بدان معناست که سیستم قبل از بررسی DNS برای درخواستهای سرویس نام، از پرونده / etc / hosts سوال می کند. اما اگر DNS قبل از فایل ها باشد، فرایند جستجوی دامنه قبل از هر سرویس یا فایل مناسب دیگری ابتدا با DNS مشورت می کند.
در این سناریو، ما می خواهیم سرویس “فایل ها” را پرس و جو کنیم. برای بررسی سفارش، تایپ کنید.
$ cat /etc/nsswitch.conf
OR
$ grep hosts /etc/nsswitch.conf

با استفاده از پرونده /etc/hosts در لینوکس DNS را به صورت لوکال پیکربندی کنید
اکنون با استفاده از ویرایشگر دلخواه خود فایل / etc / hosts را به صورت زیر باز کنید
$ sudo vi /etc/hosts
خطوط زیر را به انتهای پرونده اضافه کنید.
192.168.56.1 ubuntu.example.com
192.168.56.10 centos.example.com
در مرحله بعدی، آزمایش کنید که آیا همه چیز مطابق انتظار کار می کند یا خیر، با استفاده از دستور ping از هاست 1 ، می توانید هاست 2 را با استفاده از نام دامنه مانند آن پینگ کنید.
$ ping -c 4 centos.example.com
OR
$ ping -c 4 centos
در هاست 2 ، سرور Apache HTTP را راه اندازی کرده ایم. بنابراین ما همچنین می توانیم با مراجعه به http: //centos.example.com آزمایش کنیم که آیا سرویس ترجمه نام به صورت زیر کار می کند.
مهم: برای استفاده از نام دامنه در هر هاست در شبکه، باید تنظیمات فوق را در پرونده / etc / hosts پیکربندی کنید.
این به چه معناست، در مثال بالا، ما فقط پرونده میزبان هاست 1 را پیکربندی کردیم و فقط می توانیم از نام دامنه ها روی آن استفاده کنیم. برای استفاده از همین نام ها در هاست 2 ، باید آدرس ها و نام ها را به پرونده هاست های آن نیز اضافه کنیم.
سرانجام ، شما باید از host command یا nslookup command استفاده کنید تا بررسی کنید آیا سرویس ترجمه نام واقعاً کار می کند، این دستورات فقط از DNS سوال می کنند و از هرگونه پیکربندی در فایل های / etc / hosts و /etc/nsswitch.conf چشم پوشی می کنند.
منبع: Tecmint