hosts(5) File Formats Manual hosts(5)

hosts - جدول نگاشت استاتیک نام میزبان به آدرسهای IP

/etc/hosts

این صفحه راهنما ساختار فایل /etc/hosts را شرح می‌دهد. این فایل یک فایل متنی ساده است که آدرس‌های IP را به نام‌های میزبان مرتبط می‌سازد؛ هر خط به یک آدرس IP اختصاص دارد. برای هر میزبان باید یک خط واحد با اطلاعات زیر وجود داشته باشد:

IP_address canonical_hostname [aliases...]

آدرس IP می‌تواند منطبق بر پروتکل IPv4 یا IPv6 باشد. فیلدهای هر مدخل با هر تعداد کاراکتر فاصله (space) و/یا تب (tab) از یکدیگر جدا می‌شوند. متن از نویسه «#» تا انتهای خط به عنوان توضیح (کامنت) تلقی شده و نادیده گرفته می‌شود. نام‌های میزبان تنها می‌توانند شامل کاراکترهای حرفی-عددی (alphanumeric)، علامت خط تیره («-») و نقطه («.») باشند. آن‌ها باید با یک نویسه الفبایی آغاز شده و با یک کاراکتر حرفی-عددی پایان یابند. نام‌های مستعار اختیاری (aliases) امکان تغییر نام، املاهای جایگزین، نام‌های کوتاه‌تر یا نام‌های عمومی میزبان (مانند localhost) را فراهم می‌کنند. در صورت نیاز، یک میزبان می‌تواند دو مدخل مجزا در این فایل داشته باشد؛ یکی برای هر نسخه از پروتکل اینترنت (IPv4 و IPv6).

سرور BIND (مخفف Berkeley Internet Name Domain) کارگزار نام اینترنت را برای سیستم‌های یونیکس پیاده‌سازی می‌کند. این سرویس فایل /etc/hosts یا فرآیند جستجوی نام میزبان را تکمیل یا جایگزین کرده و میزبان را از وابستگی به به‌روز بودن و کامل بودن فایل /etc/hosts بی‌نیاز می‌سازد.

در سیستم‌های امروزی، هرچند سامانه نام دامنه (DNS) جایگزین جدول میزبان‌ها شده است، اما این فایل هنوز به طور گسترده برای موارد زیر کاربرد دارد:

راه‌اندازی اولیه سیستم (bootstrapping)
اکثر سیستم‌ها جدول میزبان کوچکی شامل اطلاعات نام و آدرس برای میزبان‌های مهم در شبکه محلی دارند. این امر زمانی که DNS در حال اجرا نیست، به عنوان مثال هنگام بوت شدن سیستم، بسیار مفید است.
سرویس NIS
سایت‌هایی که از NIS استفاده می‌کنند، از جدول میزبان به عنوان ورودی پایگاه داده میزبان NIS بهره می‌برند. اگرچه NIS را می‌توان همراه با DNS استفاده کرد، اما اکثر سایت‌های NIS همچنان از جدول میزبان با یک مدخل برای تمام میزبان‌های محلی به عنوان نسخه پشتیبان استفاده می‌کنند.
گره‌های مجزا (isolated nodes)
سایت‌های بسیار کوچکی که از شبکه جدا هستند، به جای DNS از جدول میزبان استفاده می‌کنند. اگر اطلاعات محلی به ندرت تغییر کند و شبکه به اینترنت متصل نباشد، DNS مزیت چندانی به همراه ندارد.

/etc/hosts

تغییرات اعمال‌شده در این فایل معمولاً بلافاصله اثرگذار می‌شوند، مگر در مواردی که این فایل توسط برنامه‌ها کَش (حافظه موقت) شده باشد.

استاندارد RFC 952 فرمت اولیه جدول میزبان را مشخص کرد، هرچند از آن زمان تاکنون تغییراتی یافته است.

پیش از پیدایش DNS، جدول میزبان تنها راه ترجمه و حل نام‌های میزبان در اینترنت نوپا بود. در واقع، این فایل می‌توانست از پایگاه داده رسمی میزبان که در مرکز کنترل اطلاعات شبکه (NIC) نگهداری می‌شد ایجاد گردد؛ اگرچه اغلب برای به‌روز نگه‌داشتن آن در رابطه با نام‌های مستعار غیررسمی و/یا میزبان‌های ناشناخته، تغییرات محلی مورد نیاز بود. دیگر NIC فایل‌های hosts.txt را نگهداری نمی‌کند، هرچند با بررسی در زمان نگارش این متن (حدود سال ۲۰۰۰)، فایل‌های تاریخی hosts.txt در وب (WWW) موجود هستند. من سه مورد از آن‌ها را مربوط به سال‌های ۹۲، ۹۴ و ۹۵ یافتم.

# خطوط زیر برای میزبان‌های دارای قابلیت IPv4 مناسب هستند
127.0.0.1       localhost
# آدرس 127.0.1.1 اغلب برای FQDN دستگاه استفاده می‌شود
127.0.1.1       thishost.example.org   thishost
192.168.1.10    foo.example.org        foo
192.168.1.13    bar.example.org        bar
146.82.138.7    master.debian.org      master
209.237.226.90  www.opensource.org
# خطوط زیر برای میزبان‌های دارای قابلیت IPv6 مناسب هستند
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

hostname(1), resolver(3), host.conf(5), resolv.conf(5), resolver(5), hostname(7), named(8)

Internet RFC 952

2024-05-02 Linux man-pages 6.9.1