15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
25.10.2024
1 +1

Файл Hosts: что это такое, где его найти и как редактировать на любой ОС

Ваш локальный DNS-оверрайд — без подключения к интернету

Каждый раз, когда вы вводите доменное имя в браузер, ваш компьютер незаметно выполняет процесс поиска для преобразования этого имени в IP-адрес. Но прежде чем обратиться к внешнему DNS-серверу, он проверяет небольшой, часто игнорируемый текстовый файл, тихо лежащий в вашей локальной системе: файл hosts.

Этот файл — один из самых мощных и недооценённых инструментов, доступных разработчикам, системным администраторам и опытным пользователям. Он позволяет вручную сопоставлять доменные имена с IP-адресами — мгновенно, локально и без изменений на роутере или у DNS-провайдера. Независимо от того, тестируете ли вы новый сайт перед запуском, блокируете рекламные серверы или устраняете проблемы с распространением DNS, файл hosts даёт вам прямой низкоуровневый контроль над тем, как ваша машина разрешает доменные имена.

В этом руководстве вы узнаете, что такое файл hosts, где его найти в Windows, macOS и Linux, а также как безопасно и эффективно его редактировать.

Что такое файл hosts?

Файл hosts — это системный файл в виде обычного текста, который сопоставляет имена хостов (доменные имена) с IP-адресами. Он появился раньше современной системы DNS и изначально был единственным механизмом разрешения имён в ARPANET. Сегодня он по-прежнему функционирует как локальный слой переопределения DNS — ваша ОС проверяет его первым, прежде чем выполнять какие-либо внешние DNS-запросы.

Как это работает

Когда вы переходите на сайт, ваша операционная система следует такому порядку разрешения:

  1. Проверка локального файла hosts на наличие совпадающей записи
  2. Запрос локального DNS-кэша
  3. Обращение к настроенному DNS-резолверу (например, DNS вашего интернет-провайдера или публичному резолверу, такому как 8.8.8.8)

Если файл hosts содержит совпадающую запись, поиск на этом завершается. Внешний DNS-запрос не выполняется. Это делает его чрезвычайно быстрым и полезным для локальных переопределений.

Распространённые сценарии использования файла hosts

Сценарий использованияКак это работает
Локальное тестирование сайтаНаправить домен на 127.0.0.1 или IP промежуточного сервера
Блокировка нежелательных сайтовПеренаправить рекламные или трекинговые домены на 0.0.0.0
Обход задержек распространения DNSВручную задать IP для недавно перенесённого домена
Маршрутизация в среде разработкиСопоставить пользовательские локальные домены с контейнерами Docker или виртуальными машинами
Исправление некорректных DNS-записейПринудительно задать правильный IP при неверной конфигурации DNS

> Совет для разработчиков: Если вы запускаете локальную среду разработки или тестируете сайт на сервере VPS Хостинг до завершения распространения DNS, редактирование файла hosts — самый быстрый способ просмотреть живой сайт без изменения настроек DNS.

Где находится файл hosts?

Расположение файла hosts зависит от операционной системы. Вот краткий справочник:

Windows

C:WindowsSystem32driversetchosts

macOS

/etc/hosts

Linux (все основные дистрибутивы)

/etc/hosts

В macOS и Linux /etc/hosts обычно является символической ссылкой или прямым файлом, управляемым системой. В дистрибутивах Linux, использующих systemd-resolved, файл по-прежнему имеет приоритет для локальных переопределений.

Как редактировать файл hosts в Windows

Редактирование файла hosts в Windows требует прав администратора. Файл защищён системой, поэтому стандартные учётные записи пользователей не могут его изменять.

Шаг 1: Откройте Блокнот от имени администратора

  1. Нажмите Windows Key + S и введите Notepad в строке поиска
  2. Щёлкните правой кнопкой мыши на Блокнот в результатах
  3. Выберите Запуск от имени администратора
  4. Нажмите Да, если появится запрос от контроля учётных записей (UAC)

Шаг 2: Откройте файл hosts

  1. В Блокноте нажмите Файл → Открыть
  2. Перейдите по пути: C:WindowsSystem32driversetc
  3. В выпадающем списке типа файла (рядом с полем имени файла) измените значение с Text Documents (*.txt) на Все файлы (*.*)
  4. Выберите файл с именем hosts и нажмите Открыть

Шаг 3: Добавьте или измените записи

Формат каждой записи прост:

[IP Address]    [Hostname]

Добавьте свои записи в конец файла. Например:

# Redirect example.com to local development server
127.0.0.1       example.com

# Point testsite.com to a staging VPS
192.168.1.100   testsite.com

# Block an ad network
0.0.0.0         ads.unwanteddomain.com

Строки, начинающиеся с #, являются комментариями и игнорируются системой.

Шаг 4: Сохраните файл

Нажмите Файл → Сохранить. Если вы получите ошибку прав доступа, убедитесь, что открыли Блокнот от имени администратора. Не сохраняйте файл с расширением .txt.

Шаг 5: Очистите DNS-кэш

После сохранения очистите DNS-кэш, чтобы изменения вступили в силу немедленно:

  1. Откройте Командную строку от имени администратора
  2. Выполните следующую команду:
ipconfig /flushdns

Вы должны увидеть сообщение: *«Successfully flushed the DNS Resolver Cache.»*

Как редактировать файл hosts в macOS

В macOS файл hosts редактируется через Терминал с помощью текстового редактора с привилегиями sudo (суперпользователя).

Шаг 1: Откройте Терминал

Нажмите Command + Space, чтобы открыть Spotlight Search, введите Terminal и нажмите Enter.

Шаг 2: Откройте файл hosts с помощью nano

Выполните следующую команду:

sudo nano /etc/hosts

Введите пароль администратора при появлении запроса. Пароль не будет отображаться при вводе — это нормально.

Шаг 3: Отредактируйте файл

Текстовый редактор nano откроет файл hosts. Используйте клавиши со стрелками для перехода в конец файла и добавьте свои записи:

# Development environment
127.0.0.1       myproject.local

# Staging server
203.0.113.45    staging.example.com

# Block tracking domain
0.0.0.0         tracker.example.net

Шаг 4: Сохраните и выйдите

  • Нажмите Control + O, чтобы записать (сохранить) файл
  • Нажмите Enter для подтверждения имени файла
  • Нажмите Control + X, чтобы выйти из nano

Шаг 5: Очистите DNS-кэш в macOS

Выполните подходящую команду для вашей версии macOS:

macOS Monterey, Ventura, Sonoma (и большинство современных версий):

sudo killall -HUP mDNSResponder

macOS Big Sur и более ранние версии (альтернативный вариант):

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Ваши изменения теперь будут активны на уровне всей системы.

Как редактировать файл hosts в Linux

В Linux процесс аналогичен macOS, поскольку обе системы основаны на Unix. Вам потребуется доступ root или sudo.

Шаг 1: Откройте Терминал

Запустите приложение Терминал. В большинстве графических сред его можно найти в меню приложений или нажать Ctrl + Alt + T.

Шаг 2: Откройте файл hosts

sudo nano /etc/hosts

Введите пароль root или sudo при появлении запроса.

Шаг 3: Добавьте свои записи

Перейдите в конец файла и добавьте пользовательские сопоставления:

# Local dev environment
127.0.0.1       devsite.local

# Internal server
10.0.0.5        internal.company.com

# Block unwanted domain
0.0.0.0         malicious-ads.example.com

Шаг 4: Сохраните и выйдите

  • Нажмите Control + O, затем Enter для сохранения
  • Нажмите Control + X, чтобы выйти из nano

Шаг 5: Очистите DNS-кэш в Linux

Команда для очистки DNS зависит от дистрибутива и DNS-резолвера:

Ubuntu / Debian (с systemd-resolved):

sudo systemd-resolve --flush-caches

Или в более новых версиях:

sudo resolvectl flush-caches

CentOS / RHEL / Fedora:

sudo systemctl restart NetworkManager

Arch Linux:

sudo systemd-resolve --flush-caches

Если вы используете пользовательский демон кэширования DNS, такой как nscd или dnsmasq, перезапустите соответствующий сервис:

sudo systemctl restart nscd
# or
sudo systemctl restart dnsmasq

Понимание структуры файла hosts по умолчанию

При первом открытии файла hosts в любой ОС вы увидите некоторые записи по умолчанию. Вот как выглядит типичный файл hosts Linux/macOS «из коробки»:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Пояснение ключевых записей:

  • 127.0.0.1 localhost — сопоставляет адрес обратной петли с «localhost». Это необходимо для локальной работы сети и никогда не должно удаляться.
  • ::1 localhost — IPv6-эквивалент адреса обратной петли.
  • 255.255.255.255 broadcasthost — используется для широковещательной рассылки в сети (специфично для macOS).

Никогда не удаляйте эти записи по умолчанию. Их удаление может нарушить работу локальных сетевых приложений, подключений к базам данных и других системных служб.

Рекомендации по редактированию файла hosts

1. Всегда создавайте резервную копию заранее

Перед внесением любых изменений создайте резервную копию исходного файла:

Linux / macOS:

sudo cp /etc/hosts /etc/hosts.backup

Windows (Командная строка от имени администратора):

copy C:WindowsSystem32driversetchosts C:WindowsSystem32driversetchosts.backup

Если что-то сломается, вы сможете немедленно восстановить оригинал.

2. Используйте комментарии для документирования изменений

Всегда аннотируйте свои записи комментариями с помощью #. Это особенно важно в командных или серверных средах:

# Added 2024-01-15 — Staging environment for client project
192.168.1.50    staging.clientproject.com

# Temporary block — remove after campaign ends
0.0.0.0         ads.campaign-tracker.net

3. Используйте 0.0.0.0 вместо 127.0.0.1 для блокировки

При блокировке доменов 0.0.0.0 обычно предпочтительнее 127.0.0.1, потому что:

  • Не пытается установить соединение с вашей локальной машиной
  • Завершается быстрее (нет тайм-аута соединения)
  • Не мешает работе локальных веб-серверов на портах 80/443

4. Не блокируйте критически важные системные домены

Будьте осторожны при блокировке доменов, связанных с:

  • Службами обновления Windows или macOS Software Update
  • Серверами обновления антивирусов
  • Службами облачной синхронизации (Dropbox, OneDrive, iCloud)
  • Серверами проверки лицензий используемого вами программного обеспечения

5. Поддерживайте порядок в записях

Группируйте связанные записи вместе и используйте заголовки комментариев для наглядности:

# ==========================================
# LOCAL DEVELOPMENT ENVIRONMENTS
# ==========================================
127.0.0.1       myapp.local
127.0.0.1       api.myapp.local

# ==========================================
# BLOCKED DOMAINS
# ==========================================
0.0.0.0         ads.example.com
0.0.0.0         tracker.example.net

6. Помните, что изменения файла hosts действуют только локально

Файл hosts влияет только на ту машину, на которой он находится. Если вы управляете несколькими серверами или вам нужны изменения DNS, применяемые ко всей инфраструктуре, необходимо настроить DNS на уровне сервера или сети. Для команд, управляющих несколькими средами, правильно настроенный Выделенный сервер с локальным DNS-резолвером (например, BIND или Unbound) является более масштабируемым решением.

Расширенные сценарии использования

Тестирование сайта до завершения распространения DNS

При переносе сайта к новому хостинг-провайдеру или на новый VPS с cPanel распространение DNS может занять от нескольких минут до 48 часов. Вместо того чтобы ждать, вы можете добавить IP нового сервера в файл hosts и немедленно протестировать живой сайт в том виде, в каком он будет отображаться на новом сервере:

# Testing migration to new VPS — remove after DNS propagates
203.0.113.10    yourdomain.com
203.0.113.10    www.yourdomain.com

Откройте браузер, перейдите на yourdomain.com, и вы увидите сайт, размещённый на новом сервере, — тогда как все остальные по-прежнему видят старый.

Настройка локальных доменов для разработки

Разработчики часто предпочитают использовать реалистичные доменные имена для локальных проектов вместо localhost:3000. Вы можете создавать пользовательские локальные домены:

127.0.0.1       myproject.dev
127.0.0.1       api.myproject.dev
127.0.0.1       admin.myproject.dev

В сочетании с локальным веб-сервером (Apache, Nginx или Caddy), настроенным с виртуальными хостами, вы получите чистую профессиональную локальную среду разработки.

Блокировка целых рекламных сетей

Вы можете добавить несколько записей для блокировки известных доменов, обслуживающих рекламу и трекинг:

0.0.0.0         doubleclick.net
0.0.0.0         googlesyndication.com
0.0.0.0         adservice.google.com

Для более комплексного подхода такие проекты, как hosts от StevenBlack, предоставляют регулярно обновляемые сводные файлы hosts с десятками тысяч заблокированных доменов.

Устранение распространённых проблем с файлом hosts

Изменения не вступают в силу

  • Вы очистили DNS-кэш? Это наиболее распространённая причина. Выполните соответствующую команду очистки для вашей ОС.
  • Вы правильно сохранили файл? В Windows убедитесь, что случайно не сохранили его как hosts.txt.
  • Использует ли ваш браузер собственный DNS-кэш? Chrome и Firefox поддерживают собственные DNS-кэши. Попробуйте очистить их или откройте приватное/инкогнито окно.
  • Вы используете VPN? VPN-клиенты часто переопределяют локальные настройки DNS, полностью обходя файл hosts.

Ошибки отказа в доступе

  • Windows: Убедитесь, что Блокнот (или ваш редактор) запущен от имени администратора.
  • Linux/macOS: Убедитесь, что используете sudo перед командой.

Сайт по-прежнему разрешается на старый IP

  • Проверьте правильность формата записи: IP_ADDRESS[TAB or SPACES]hostname — без http:// и завершающих слэшей.
  • Проверьте наличие опечаток в доменном имени.
  • Убедитесь, что в файле выше нет конфликтующих записей.

Случайно что-то сломали

Восстановите резервную копию:

# Linux/macOS
sudo cp /etc/hosts.backup /etc/hosts

# Windows (as Administrator)
copy C:WindowsSystem32driversetchosts.backup C:WindowsSystem32driversetchosts

Файл hosts vs. DNS: когда что использовать

СценарийФайл hostsНастройка DNS
Быстрое локальное тестирование на одной машине✅ Идеально❌ Избыточно
Среда разработки для всей команды❌ Не масштабируется✅ Используйте внутренний DNS
Блокировка сайтов на одном устройстве✅ Хорошо работает❌ Не нужно
Управление продакшн-доменами❌ Не подходит✅ Обязательно
Тестирование сайта перед запуском✅ Идеально❌ Затронет всех пользователей
Многосерверная инфраструктура❌ Слишком ручной процесс✅ Необходимо

Для продакшн-сред всегда управляйте DNS через регистратора домена или панель управления хостингом. Если вам нужно профессионально зарегистрировать домены или управлять ими, Регистрация доменов через надёжного провайдера гарантирует правильное и безопасное распространение ваших DNS-записей по всему интернету.

Аналогично, если вы запускаете почтовый сервер и хотите обеспечить правильную доставку писем, редактирование файла hosts не заменяет правильно настроенные MX-записи. Изучите специализированные решения Почтового хостинга для надёжной, правильно настроенной почтовой инфраструктуры.

Краткий справочник: шпаргалка по файлу hosts

Расположение файлов

ОСПуть
WindowsC:WindowsSystem32driversetchosts
macOS/etc/hosts
Linux/etc/hosts

Открытие для редактирования

ОСКоманда / Метод
WindowsБлокнот → Запуск от имени администратора → Файл → Открыть
macOSsudo nano /etc/hosts
Linuxsudo nano /etc/hosts

Очистка DNS-кэша

ОСКоманда
Windowsipconfig /flushdns
macOSsudo killall -HUP mDNSResponder
Ubuntu/Debiansudo systemd-resolve --flush-caches
CentOS/RHELsudo systemctl restart NetworkManager

Формат записи

[IP Address]    [hostname]    [optional alias]

# Examples:
127.0.0.1       localhost
127.0.0.1       myapp.local
0.0.0.0         blocked-site.com
192.168.1.10    staging.example.com

Заключение: управляйте локальным DNS с помощью файла hosts

Файл hosts — обманчиво простой инструмент с удивительно широкими возможностями. Всего в нескольких строках обычного текста вы можете перенаправлять домены, блокировать нежелательный контент, тестировать новые конфигурации серверов и устранять проблемы с DNS — не трогая роутер, DNS-провайдера или сетевую инфраструктуру.

Ключевые выводы:

  • Всегда создавайте резервную копию файла hosts перед редактированием
  • Используйте комментарии для документирования каждого вносимого изменения
  • Очищайте DNS-кэш после каждого редактирования, чтобы изменения применились немедленно
  • Используйте 0.0.0.0 вместо 127.0.0.1 при блокировке доменов
  • Помните о локальности — изменения файла hosts влияют только на ту машину, на которой они сделаны

Для разработчиков и системных администраторов, работающих с хостинговыми средами, файл hosts отлично сочетается с правильно настроенным сервером. Тестируете ли вы новое приложение на тарифе VPS Хостинг, просматриваете сайт на аккаунте Виртуального веб-хостинга перед запуском или проверяете конфигурацию SSL после установки SSL-сертификата — файл hosts даёт вам локальный контроль, необходимый для уверенной и эффективной работы.

Теперь откройте этот файл, внесите изменения аккуратно, очистите кэш и возьмите под полный контроль то, как ваша машина видит интернет.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать