Файл Hosts: что это такое, где его найти и как редактировать на любой ОС
Ваш локальный DNS-оверрайд — без подключения к интернету
Каждый раз, когда вы вводите доменное имя в браузер, ваш компьютер незаметно выполняет процесс поиска для преобразования этого имени в IP-адрес. Но прежде чем обратиться к внешнему DNS-серверу, он проверяет небольшой, часто игнорируемый текстовый файл, тихо лежащий в вашей локальной системе: файл hosts.
Этот файл — один из самых мощных и недооценённых инструментов, доступных разработчикам, системным администраторам и опытным пользователям. Он позволяет вручную сопоставлять доменные имена с IP-адресами — мгновенно, локально и без изменений на роутере или у DNS-провайдера. Независимо от того, тестируете ли вы новый сайт перед запуском, блокируете рекламные серверы или устраняете проблемы с распространением DNS, файл hosts даёт вам прямой низкоуровневый контроль над тем, как ваша машина разрешает доменные имена.
В этом руководстве вы узнаете, что такое файл hosts, где его найти в Windows, macOS и Linux, а также как безопасно и эффективно его редактировать.
Что такое файл hosts?
Файл hosts — это системный файл в виде обычного текста, который сопоставляет имена хостов (доменные имена) с IP-адресами. Он появился раньше современной системы DNS и изначально был единственным механизмом разрешения имён в ARPANET. Сегодня он по-прежнему функционирует как локальный слой переопределения DNS — ваша ОС проверяет его первым, прежде чем выполнять какие-либо внешние DNS-запросы.
Как это работает
Когда вы переходите на сайт, ваша операционная система следует такому порядку разрешения:
- Проверка локального файла hosts на наличие совпадающей записи
- Запрос локального DNS-кэша
- Обращение к настроенному 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:WindowsSystem32driversetchostsmacOS
/etc/hostsLinux (все основные дистрибутивы)
/etc/hostsВ macOS и Linux /etc/hosts обычно является символической ссылкой или прямым файлом, управляемым системой. В дистрибутивах Linux, использующих systemd-resolved, файл по-прежнему имеет приоритет для локальных переопределений.
Как редактировать файл hosts в Windows
Редактирование файла hosts в Windows требует прав администратора. Файл защищён системой, поэтому стандартные учётные записи пользователей не могут его изменять.
Шаг 1: Откройте Блокнот от имени администратора
- Нажмите Windows Key + S и введите
Notepadв строке поиска - Щёлкните правой кнопкой мыши на Блокнот в результатах
- Выберите Запуск от имени администратора
- Нажмите Да, если появится запрос от контроля учётных записей (UAC)
Шаг 2: Откройте файл hosts
- В Блокноте нажмите Файл → Открыть
- Перейдите по пути:
C:WindowsSystem32driversetc - В выпадающем списке типа файла (рядом с полем имени файла) измените значение с
Text Documents (*.txt)на Все файлы (*.*) - Выберите файл с именем
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-кэш, чтобы изменения вступили в силу немедленно:
- Откройте Командную строку от имени администратора
- Выполните следующую команду:
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 mDNSRespondermacOS 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-cachesCentOS / RHEL / Fedora:
sudo systemctl restart NetworkManagerArch 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.backupWindows (Командная строка от имени администратора):
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.net3. Используйте 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.net6. Помните, что изменения файла 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
Расположение файлов
| ОС | Путь |
|---|---|
| Windows | C:WindowsSystem32driversetchosts |
| macOS | /etc/hosts |
| Linux | /etc/hosts |
Открытие для редактирования
| ОС | Команда / Метод |
|---|---|
| Windows | Блокнот → Запуск от имени администратора → Файл → Открыть |
| macOS | sudo nano /etc/hosts |
| Linux | sudo nano /etc/hosts |
Очистка DNS-кэша
| ОС | Команда |
|---|---|
| Windows | ipconfig /flushdns |
| macOS | sudo killall -HUP mDNSResponder |
| Ubuntu/Debian | sudo systemd-resolve --flush-caches |
| CentOS/RHEL | sudo 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 даёт вам локальный контроль, необходимый для уверенной и эффективной работы.
Теперь откройте этот файл, внесите изменения аккуратно, очистите кэш и возьмите под полный контроль то, как ваша машина видит интернет.
