خانه بهینه سازی و سئو آموزش ویرایش فایل Hosts برای تغییر DNS محلی: راهنمای کامل ۲۰۲۶
تاریخ به‌روزرسانی : 1401/08/18
به قلم : شهاب بیرامی
زمان مطالعه : 7 دقیقه

آموزش ویرایش فایل Hosts برای تغییر DNS محلی: راهنمای کامل ۲۰۲۶

ویرایش فایل hosts برای تغییر DNS محلی

🎯 خلاصه سریع (TL;DR):

  • فایل hosts: یک DNS محلی که روی سیستم شما اولویت دارد
  • مسیر ویندوز: C:\Windows\System32\drivers\etc\hosts
  • مسیر مک/لینوکس: /etc/hosts
  • کاربرد: تست سایت قبل از تغییر نیم‌سرور، بلاک کردن سایت، توسعه محلی
  • ⚠️ هشدار: DNS over HTTPS در فایرفاکس این فایل را دور می‌زند!

فایل hosts یک پایگاه داده DNS محلی است که به سیستم‌عامل شما اجازه می‌دهد قبل از مراجعه به سرورهای DNS اینترنتی، آدرس IP یک دامنه را پیدا کند. در این راهنما یاد می‌گیرید چگونه این فایل را در Windows 11/10، macOS و Linux ویرایش کنید.

فایل Hosts چیست و چرا مهم است؟

وقتی در مرورگر آدرس یک سایت را وارد می‌کنید، سیستم‌عامل ابتدا فایل hosts را بررسی می‌کند. اگر دامنه در این فایل باشد، مستقیماً به IP مشخص‌شده می‌رود. در غیر این صورت، از سرورهای DNS اینترنتی استفاده می‌کند.

💡 ترتیب اولویت:

فایل hosts محلی ← DNS سیستم‌عامل ← سرورهای DNS اینترنتی

کاربردهای اصلی فایل hosts:

  • تست سایت قبل از تغییر نیم‌سرور: سایت جدید را روی سرور جدید تست کنید بدون تغییر DNS واقعی
  • توسعه و طراحی سایت: دامنه‌های محلی برای پروژه‌های در حال توسعه
  • بلاک کردن سایت‌ها: هدایت سایت‌های ناخواسته به 127.0.0.1
  • دور زدن محدودیت‌های DNS: اتصال مستقیم به IP سرور

مسیر فایل Hosts در سیستم‌عامل‌های مختلف

سیستم‌عامل مسیر فایل hosts
Windows 11/10/8/7 C:\Windows\System32\drivers\etc\hosts
macOS /etc/hosts یا /private/etc/hosts
Linux (Ubuntu, Debian, CentOS) /etc/hosts

⚠️ هشدار مهم: DNS over HTTPS (DoH)

🔒 مشکل DNS over HTTPS:

مرورگر فایرفاکس به صورت پیش‌فرض از DNS over HTTPS (DoH) استفاده می‌کند. این یعنی فایرفاکس درخواست‌های DNS را مستقیماً از طریق HTTPS انجام می‌دهد و فایل hosts را نادیده می‌گیرد!

راه‌حل برای فایرفاکس:

  1. مرورگر فایرفاکس را باز کنید
  2. به Settings (تنظیمات) بروید
  3. در بخش General، قسمت Network Settings را پیدا کنید
  4. روی Settings کلیک کنید
  5. در پایین پنجره، گزینه Enable DNS over HTTPS را غیرفعال کنید
  6. روی OK کلیک کنید

نکته: مرورگرهای Chrome، Edge و Safari به صورت پیش‌فرض DoH فعال ندارند و با فایل hosts کار می‌کنند.

ویرایش فایل Hosts در Windows 11/10

روش ۱: با Notepad++ (توصیه‌شده)

📱 مراحل:

  1. کلیدهای Win + R را فشار دهید
  2. تایپ کنید: c:\windows\system32\drivers و Enter بزنید
  3. وارد پوشه etc شوید
  4. روی فایل hosts راست‌کلیک کنید و Edit with Notepad++ را انتخاب کنید
  5. اگر پیغام دسترسی ادمین آمد، Yes بزنید
  6. در انتهای فایل، خط جدید اضافه کنید با فرمت: IP دامنه
  7. با Ctrl+S ذخیره کنید

روش ۲: با Notepad (ویندوز ۱۰/۱۱)

  1. در منوی استارت، Notepad را جستجو کنید
  2. روی آن راست‌کلیک کنید و Run as Administrator را انتخاب کنید
  3. در پنجره UAC روی Yes کلیک کنید
  4. از منوی File، گزینه Open را انتخاب کنید
  5. مسیر C:\Windows\System32\drivers\etc را وارد کنید
  6. در قسمت فیلتر فایل، All Files (*.*) را انتخاب کنید
  7. فایل hosts را باز کنید
  8. تغییرات را انجام دهید و Save کنید

فرمت صحیح ورودی‌ها:

# نظرات با # شروع می‌شوند
127.0.0.1       localhost
::1             localhost

# تست سرور جدید
185.185.185.185 bertina.ir www.bertina.ir

# بلاک کردن سایت
127.0.0.1       unwanted-site.com

پاک کردن کش DNS ویندوز:

بعد از ویرایش فایل hosts، کش DNS را پاک کنید:

ipconfig /flushdns

ویرایش فایل Hosts در macOS

📱 مراحل:

  1. Terminal را باز کنید (از Spotlight با Cmd+Space جستجو کنید)
  2. دستور زیر را وارد کنید:
sudo nano /etc/hosts
  1. رمز عبور کاربر را وارد کنید
  2. در انتهای فایل، IP و دامنه را اضافه کنید
  3. با Ctrl+O ذخیره کنید و Enter بزنید
  4. با Ctrl+X از nano خارج شوید

روش سریع (یک خطی):

echo "185.185.185.185 bertina.ir www.bertina.ir" | sudo tee -a /etc/hosts

پاک کردن کش DNS در macOS:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

نکته: در macOS Yosemite (نسخه 10.10 تا 10.10.3) از دستور متفاوتی استفاده کنید:

sudo discoveryutil mdnsflushcache; sudo discoveryutil udnsflushcaches

ویرایش فایل Hosts در Linux

با ویرایشگر Nano:

sudo nano /etc/hosts

با ویرایشگر Vim:

sudo vim /etc/hosts

در vim: کلید i برای ورود به حالت ویرایش، Esc برای خروج، :wq برای ذخیره و خروج.

پاک کردن کش DNS در Linux:

# Ubuntu/Debian:
sudo service dns-clean restart

# اگر از NSCD استفاده می‌کنید:
sudo systemctl restart nscd.service

تست صحیح بودن تغییرات

بعد از ویرایش فایل hosts و پاک کردن کش DNS، با دستور ping صحت تغییرات را بررسی کنید:

ping bertina.ir

اگر IP نمایش داده شده همان IP وارد شده در فایل hosts باشد، تغییرات موفق بوده است.

نکات مهم و بهترین روش‌ها

⚠️ نکات مهم:

  • هر دو نسخه دامنه: هم domain.com و هم www.domain.com را وارد کنید
  • پاک کردن بعد از تست: بعد از اتمام تست، ورودی‌ها را حذف کنید تا DNS واقعی استفاده شود
  • کامنت کردن: به جای حذف، می‌توانید با # ابتدای خط، آن را غیرفعال کنید
  • مرورگر Incognito: برای تست، از پنجره Private/Incognito استفاده کنید
  • بستن کامل مرورگر: گاهی نیاز است مرورگر را کاملاً ببندید و باز کنید

سناریوی عملی: تست سایت قبل از انتقال

فرض کنید می‌خواهید سایت را به سرور مجازی جدید منتقل کنید. قبل از تغییر نیم‌سرور واقعی:

  1. IP سرور جدید را از پنل هاست یا VPS بگیرید
  2. در فایل hosts وارد کنید: IP-جدید domain.com www.domain.com
  3. کش DNS را پاک کنید
  4. سایت را در مرورگر تست کنید
  5. اگر همه چیز درست بود، نیم‌سرور واقعی را تغییر دهید
  6. ورودی را از فایل hosts حذف کنید

برای میزبانی سایت، از هاست لینوکس، سرور مجازی یا سرور اختصاصی برتینا استفاده کنید.

❓ سؤالات متداول

چرا تغییرات فایل hosts اعمال نمی‌شود؟

۱) کش DNS را پاک کنید (ipconfig /flushdns در ویندوز)، ۲) مرورگر را کاملاً ببندید و باز کنید، ۳) در فایرفاکس DNS over HTTPS را غیرفعال کنید، ۴) از پنجره Incognito تست کنید، ۵) مطمئن شوید فرمت IP و دامنه صحیح است.

آیا ویرایش فایل hosts امن است؟

بله، اما با احتیاط. این فایل فقط روی سیستم شما تأثیر دارد. اشتباه در ویرایش می‌تواند دسترسی به بعضی سایت‌ها را مختل کند. قبل از ویرایش، یک کپی بک‌آپ بگیرید. همچنین بدافزارها گاهی این فایل را تغییر می‌دهند، پس اگر ورودی‌های ناشناخته دیدید، سیستم را اسکن کنید.

تفاوت فایل hosts با DNS چیست؟

فایل hosts یک DNS محلی روی سیستم شماست که اولویت بالاتری از سرورهای DNS اینترنتی دارد. DNS اینترنتی برای همه کاربران جهان یکسان است، اما فایل hosts فقط روی سیستم شما تأثیر دارد.

چگونه سایت را با فایل hosts بلاک کنم؟

دامنه مورد نظر را به IP محلی 127.0.0.1 یا 0.0.0.0 هدایت کنید. مثال: «127.0.0.1 unwanted-site.com www.unwanted-site.com». این باعث می‌شود مرورگر به جای سرور واقعی، به سیستم خودتان متصل شود که نتیجه‌ای ندارد.

DNS over HTTPS (DoH) چیست و چرا مشکل‌ساز است؟

DNS over HTTPS پروتکلی است که درخواست‌های DNS را رمزنگاری می‌کند. این برای امنیت خوب است، اما مشکل این است که مرورگر (مثل فایرفاکس) فایل hosts محلی را نادیده می‌گیرد و مستقیماً از سرورهای DNS اینترنتی استفاده می‌کند. برای استفاده از فایل hosts، باید DoH را در تنظیمات مرورگر غیرفعال کنید.

نظرات