ویرایش فایل Hosts سادهترین راه برای تغییر DNS محلی روی یک سیستم است؛ یعنی شما بدون دستزدن به تنظیمات دامنه یا سرور DNS، به کامپیوتر خودتان میگویید که یک نام دامنه مشخص به کدام آدرس IP اشاره کند. فایل Hosts یک فایل متنی ساده در سیستمعامل است که پیش از هر پرسوجوی DNS خوانده میشود و به همین دلیل اولویت بالاتری نسبت به سرورهای DNS دارد. این قابلیت برای تست سایت روی سرور جدید پیش از انتقال دامنه، مسدودکردن سایتهای مزاحم، توسعه محلی وب و عیبیابی مشکلات شبکه بسیار کاربردی است. در این راهنما یاد میگیرید فایل Hosts کجاست، ساختار آن چگونه است، چطور آن را در ویندوز، لینوکس و مک ویرایش کنید و چه اشتباهاتی باید از آنها پرهیز کنید.
فایل Hosts چیست و چه کاری انجام میدهد؟
فایل Hosts یک نگاشت ساده میان نامهای دامنه و آدرسهای IP است که بهصورت محلی روی همان دستگاه ذخیره میشود. هر زمان مرورگر یا هر برنامه دیگری بخواهد به یک دامنه متصل شود، سیستمعامل ابتدا فایل Hosts را بررسی میکند. اگر نامی که جستوجو میشود در این فایل تعریف شده باشد، سیستم بلافاصله از همان IP استفاده میکند و دیگر سراغ سرور DNS نمیرود. به همین علت میگوییم فایل Hosts «DNS محلی» است و بر همهچیز اولویت دارد.
پیش از فراگیر شدن سیستم DNS در اینترنت، همه نگاشتهای نام به IP در همین فایل نگهداری میشد. امروز DNS این وظیفه را در مقیاس جهانی بر عهده گرفته است، اما فایل Hosts هنوز برای موارد خاص و محلی جای خود را دارد؛ بهویژه برای مدیران سرور، توسعهدهندگان و افرادی که میخواهند رفتار یک دامنه را فقط روی یک سیستم مشخص تغییر دهند بدون اینکه سایر کاربران اینترنت تحت تأثیر قرار بگیرند.
چرا و چه زمانی باید فایل Hosts را ویرایش کنیم؟
ویرایش فایل Hosts در بسیاری از سناریوهای واقعی به کمک شما میآید. رایجترین دلیل، تست سایت روی سرور جدید پیش از تغییر DNS دامنه است. فرض کنید سایت خود را به یک سرور مجازی یا هاست جدید منتقل کردهاید و میخواهید مطمئن شوید همهچیز درست کار میکند، اما هنوز نمیخواهید کاربران واقعی را به سرور جدید هدایت کنید. با ویرایش فایل Hosts، فقط کامپیوتر شما دامنه را روی IP سرور جدید میبیند و میتوانید سایت را کامل بررسی کنید.
موارد پرکاربرد دیگر عبارتاند از:
- عیبیابی مشکلات DNS و اطمینان از اینکه مشکل از سرور نام است یا از خود سایت.
- مسدودکردن دسترسی به دامنههای تبلیغاتی یا مزاحم با اشارهدادن آنها به آدرس بازگشتی سیستم.
- توسعه محلی وب و اشارهدادن دامنههای آزمایشی به سرور توسعه روی همان دستگاه.
- دورزدن موقت کش DNS در زمانی که رکورد دامنه تازه تغییر کرده و هنوز منتشر نشده است.
- تست محیطهای چند-دامنهای روی یک سرور اختصاصی بدون نیاز به ثبت رکورد واقعی.
در تمام این سناریوها یک اصل مشترک وجود دارد: شما میخواهید رفتار یک دامنه را فقط روی دستگاه خودتان تغییر دهید، بدون اینکه این تغییر روی دیگر کاربران اینترنت اثر بگذارد. این دقیقاً همان چیزی است که فایل Hosts فراهم میکند و آن را به ابزاری بیخطر و برگشتپذیر تبدیل میکند؛ کافی است خط اضافهشده را حذف کنید تا همهچیز به حالت قبل بازگردد. به همین دلیل مدیران سیستم و توسعهدهندگان حرفهای فایل Hosts را بخشی جداییناپذیر از جعبهابزار روزمره خود میدانند و پیش از هر انتقال یا تغییر مهم DNS، ابتدا نتیجه را با فایل Hosts روی سیستم خود میآزمایند.
فایل Hosts در هر سیستمعامل کجاست؟
محل قرارگیری فایل Hosts در هر سیستمعامل متفاوت است، اما ساختار داخلی آن در همهجا یکسان است. جدول زیر مسیر دقیق فایل و برنامه پیشنهادی برای ویرایش آن را نشان میدهد.
| سیستمعامل | مسیر فایل Hosts | ابزار ویرایش پیشنهادی | نیاز به دسترسی مدیر |
|---|---|---|---|
| ویندوز | C:\Windows\System32\drivers\etc\hosts | Notepad با Run as administrator | بله |
| لینوکس | /etc/hosts | nano یا vim با sudo | بله (sudo) |
| مک (macOS) | /etc/hosts | nano با sudo در Terminal | بله (sudo) |
| اندروید (روتشده) | /system/etc/hosts | ویرایشگر متن با دسترسی روت | بله (Root) |
ساختار و نحوه نوشتن رکورد در فایل Hosts
ساختار هر خط در فایل Hosts بسیار ساده است: ابتدا آدرس IP، سپس یک یا چند فاصله یا Tab، و در نهایت نام دامنه. هر خط یک نگاشت جداگانه است و میتوانید در یک خط چند نام دامنه را به یک IP نسبت دهید. خطوطی که با علامت # شروع میشوند توضیحات (Comment) هستند و توسط سیستم نادیده گرفته میشوند. نمونهای از رکوردهای معتبر:
185.88.155.36 example.com— دامنه example.com را به این IP اشاره میدهد.185.88.155.36 example.com www.example.com— هم دامنه اصلی و هم www را نگاشت میکند.127.0.0.1 localhost— نگاشت پیشفرض میزبان محلی.# 203.0.113.10 old-site.com— این خط غیرفعال است چون با # آغاز شده.
نکته مهم این است که برای هر سابدامین باید یک ورودی جداگانه بنویسید؛ فایل Hosts از کاراکتر جایگزین (wildcard) پشتیبانی نمیکند. یعنی نوشتن *.example.com کار نمیکند و باید تکتک سابدامینها را بنویسید.
آموزش گامبهگام ویرایش فایل Hosts در ویندوز
ویرایش فایل Hosts در ویندوز به دسترسی مدیر نیاز دارد، وگرنه هنگام ذخیره با خطای عدم دسترسی مواجه میشوید. مراحل زیر را بهترتیب دنبال کنید:
- در منوی Start عبارت Notepad را جستوجو کنید، روی آن راستکلیک کرده و گزینه Run as administrator را انتخاب کنید.
- در Notepad از منوی File گزینه Open را بزنید و به مسیر
C:\Windows\System32\drivers\etcبروید. - نوع فایل را از Text Documents به All Files تغییر دهید تا فایل hosts نمایش داده شود، سپس آن را باز کنید.
- در انتهای فایل یک خط جدید اضافه کنید؛ برای مثال
185.88.155.36 mysite.com www.mysite.com. - فایل را با Ctrl+S ذخیره کنید. چون Notepad را با دسترسی مدیر باز کردهاید، ذخیره بدون خطا انجام میشود.
- برای اطمینان، کش DNS ویندوز را با اجرای دستور
ipconfig /flushdnsدر Command Prompt پاک کنید.
ویرایش فایل Hosts در لینوکس و مک
در سیستمهای مبتنی بر یونیکس مانند لینوکس و macOS، فایل Hosts در مسیر /etc/hosts قرار دارد و ویرایش آن به دسترسی sudo نیاز دارد. مراحل کار در ترمینال به این شکل است:
- ترمینال را باز کنید و دستور
sudo nano /etc/hostsرا اجرا کنید؛ رمز عبور کاربر را وارد کنید. - در ویرایشگر nano به انتهای فایل بروید و رکورد جدید را اضافه کنید، مثلاً
185.88.155.36 mysite.com. - با کلید ترکیبی Ctrl+O فایل را ذخیره و با Ctrl+X از ویرایشگر خارج شوید.
- در لینوکس بسته به توزیع، کش را با
sudo systemd-resolve --flush-cachesیا ریاستارت سرویس شبکه پاک کنید. - در مک دستور
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderرا اجرا کنید تا کش DNS تازه شود.
اگر روی یک سرور مجازی لینوکسی کار میکنید، همین مسیر و همین مراحل معتبر است و میتوانید فایل Hosts را برای تعریف نامهای داخلی میان چند سرور استفاده کنید.
پاککردن کش DNS بعد از ویرایش
مرورگرها و سیستمعامل نتایج DNS را برای مدتی در حافظه نگه میدارند. اگر بعد از ویرایش فایل Hosts تغییری در رفتار سایت ندیدید، به احتمال زیاد کش DNS هنوز مقدار قدیمی را نگه داشته است. جدول زیر دستورهای پاککردن کش را در هر سیستم خلاصه میکند.
| سیستمعامل | دستور پاککردن کش DNS |
|---|---|
| ویندوز | ipconfig /flushdns |
| لینوکس (systemd) | sudo systemd-resolve --flush-caches |
| مک | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
علاوه بر کش سیستم، بهتر است مرورگر را بهطور کامل ببندید و دوباره باز کنید، چون مرورگرهایی مانند کروم کش DNS داخلی خودشان را دارند. در کروم میتوانید از آدرس داخلی مربوط به پاککردن کش سوکت و DNS استفاده کنید تا اطمینان حاصل شود مرورگر مقدار تازه را میخواند.
اشتباهات رایج و نکات امنیتی در ویرایش فایل Hosts
ویرایش نادرست فایل Hosts میتواند دسترسی به سایتها را مختل کند. رایجترین اشتباهات و راه پیشگیری از آنها را بشناسید:
- ذخیره با پسوند اشتباه: در ویندوز اگر Notepad فایل را با پسوند txt ذخیره کند، تغییرات اعمال نمیشود. حتماً نوع فایل را All Files قرار دهید.
- نداشتن دسترسی مدیر: بدون Run as administrator یا sudo، ذخیره با خطا مواجه میشود.
- استفاده از wildcard: فایل Hosts فقط نام دقیق دامنه را میپذیرد و از * پشتیبانی نمیکند.
- فراموشکردن پاککردن کش: بدون flush کردن DNS، تغییرات ممکن است بلافاصله دیده نشوند.
- ورودی مخرب: بدافزارها گاهی فایل Hosts را دستکاری میکنند تا دامنههای بانکی را به سرورهای جعلی هدایت کنند؛ اگر ورودی ناشناخته دیدید، آن را حذف کنید.
از نظر امنیتی، فایل Hosts یکی از اهداف رایج بدافزارها است. توصیه میشود هر از گاهی محتوای آن را بررسی کنید و مطمئن شوید تنها ورودیهایی که خودتان اضافه کردهاید در آن وجود دارد. برای محیطهای تولیدی و میزبانی وبسایت، بهتر است بهجای اتکا به فایل Hosts، از رکوردهای DNS واقعی روی هاست یا سرور خود استفاده کنید تا همه کاربران بهدرستی هدایت شوند.
فایل Hosts در مقابل DNS واقعی: تفاوت کلیدی
فایل Hosts فقط روی همان دستگاهی که ویرایش شده تأثیر میگذارد و برای تست و توسعه عالی است، اما راهحل نهایی برای انتشار سایت نیست. وقتی میخواهید سایت شما برای همه کاربران اینترنت قابل دسترس باشد، باید رکوردهای DNS دامنه را در پنل مدیریت دامنه تنظیم کنید. اگر قصد ثبت یا انتقال دامنه دارید و میخواهید رکوردهای A و CNAME را حرفهای مدیریت کنید، سرویس ثبت دامنه برتینا با پنل مدیریت کامل و پشتیبانی فارسی این کار را ساده میکند. برای پروژههایی که به منابع اختصاصی و کنترل کامل روی محیط سرور نیاز دارند، انتخاب یک سرور مجازی با معماری KVM و دیسک NVMe بستر مناسبی برای تست و اجرای واقعی فراهم میکند.
نکته مهم این است که تفاوت رفتار سایت میان فایل Hosts و DNS واقعی میتواند شما را در عیبیابی راهنمایی کند. اگر سایت با فایل Hosts روی سرور جدید درست کار کرد اما پس از تغییر DNS واقعی همچنان مشکل داشت، احتمالاً منشأ مشکل در انتشار DNS یا کش سرورهای میانی است، نه در خود سرور. برعکس، اگر با فایل Hosts هم سایت بالا نیامد، مشکل از پیکربندی سرور یا خود سایت است. این روش تفکیک، یکی از حرفهایترین تکنیکهای مدیران وب برای شناسایی سریع منشأ خطا پیش از انتقال نهایی است و در زمان مهاجرتهای بزرگ میتواند ساعتها وقت شما را ذخیره کند.
سوالات متداول
آیا ویرایش فایل Hosts روی همه کاربران سایت تأثیر میگذارد؟
خیر. تغییرات فایل Hosts فقط روی همان دستگاهی که ویرایش شده اعمال میشود. سایر کاربران اینترنت همچنان دامنه را از طریق سرورهای DNS واقعی میبینند. برای تغییر سراسری باید رکوردهای DNS دامنه را ویرایش کنید.
چرا بعد از ویرایش فایل Hosts تغییری نمیبینم؟
دلیل رایج، کش DNS سیستمعامل یا مرورگر است. کش را با دستور مناسب سیستم خود پاک کنید، مرورگر را ببندید و دوباره باز کنید. همچنین مطمئن شوید فایل را با دسترسی مدیر و بدون پسوند اضافی ذخیره کردهاید.
آیا میتوانم یک دامنه را با فایل Hosts مسدود کنم؟
بله. با اشارهدادن دامنه به آدرس بازگشتی سیستم مانند 127.0.0.1 baddomain.com، درخواستها به میزبان محلی هدایت میشوند و عملاً دسترسی به آن دامنه از روی همان دستگاه مسدود میشود.
فایل Hosts برای تست انتقال سایت به سرور جدید چگونه کمک میکند؟
با نگاشت دامنه به IP سرور جدید در فایل Hosts، فقط کامپیوتر شما سایت را روی سرور تازه میبیند و میتوانید همهچیز را بررسی کنید، در حالی که کاربران واقعی هنوز روی سرور قدیمی هستند. پس از اطمینان، DNS واقعی را تغییر میدهید.
جمعبندی
فایل Hosts ابزاری ساده اما قدرتمند برای کنترل DNS محلی است که در تست، توسعه و عیبیابی نقش مهمی دارد. با شناخت مسیر فایل در هر سیستمعامل، ساختار رکوردها و روش پاککردن کش، میتوانید بدون خطر رفتار دامنهها را روی دستگاه خود مدیریت کنید. اما به یاد داشته باشید که فایل Hosts جایگزین DNS واقعی نیست؛ برای انتشار حرفهای سایت به همه کاربران، به یک زیرساخت میزبانی پایدار و مدیریت درست دامنه نیاز دارید. اگر آماده انتقال یا راهاندازی پروژهای جدی هستید، تیم برتینا با هاست پرسرعت، سرور مجازی KVM و سرور اختصاصی در دیتاسنترهای ایران و اروپا و پشتیبانی ۲۴/۷ فارسی، بستر مطمئنی برای اجرای واقعی پروژه شما فراهم میکند و انتقال رایگان سایت را نیز بر عهده میگیرد.




