15%

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

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

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

Skills
Начать
30.10.2024
2 +1

Файл Hosts в macOS: Полное руководство по локальному управлению DNS

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

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

Файл hosts — это текстовый системный файл, который сопоставляет удобочитаемые имена хостов (например, example.com) с конкретными IP-адресами. Прежде чем ваш Mac отправит DNS-запрос внешнему резолверу, он сначала проверяет локальный файл hosts. Если соответствующая запись существует, используется этот IP-адрес — без участия DNS-сервера.

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

Основные варианты использования

Вариант использованияЧто делает
Блокировка веб-сайтовСопоставляет домен с 0.0.0.0 для предотвращения доступа
Локальная разработкаСопоставляет пользовательский домен с 127.0.0.1 для тестирования на localhost
Тестирование DNS / МиграцияНаправляет действующий домен на IP-адрес нового сервера до распространения DNS
Промежуточные средыПредварительный просмотр сайта на новом хосте без изменения публичного DNS
Усиление безопасностиБлокирует известные вредоносные домены и домены, обслуживающие рекламу

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

В macOS файл hosts находится в директории /etc/. Полный путь:

/etc/hosts

Это защищённый системный файл, что означает необходимость прав администратора (root) для его изменения. Вы не можете просто дважды щёлкнуть по нему и начать редактирование — необходимо использовать Terminal с повышенными привилегиями через sudo.

> Примечание: Директория /etc/ в macOS на самом деле является символической ссылкой на /private/etc/, поэтому /etc/hosts и /private/etc/hosts указывают на один и тот же файл.

Как редактировать файл hosts в macOS: пошаговая инструкция

Шаг 1 — Откройте Terminal

Запустите приложение Terminal. Это можно сделать двумя способами:

  • Поиск Spotlight: Нажмите Command + Space, введите Terminal и нажмите Enter
  • Finder: Перейдите в Applications > Utilities > Terminal

Шаг 2 — Откройте файл hosts с повышенными привилегиями

Используйте текстовый редактор nano с sudo для открытия файла hosts:

sudo nano /etc/hosts

Вам будет предложено ввести пароль администратора macOS. Введите его и нажмите Enter. Обратите внимание, что поле пароля останется пустым при вводе — это нормальное поведение sudo в Terminal.

Шаг 3 — Ознакомьтесь с записями по умолчанию

После открытия файла в nano вы увидите записи по умолчанию, с которыми поставляется 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

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

Шаг 4 — Добавьте пользовательские записи

Синтаксис записи файла hosts прост:

<IP address>    <hostname>    [optional alias]

Каждая запись должна находиться на отдельной строке. Вот практические примеры:

Заблокировать веб-сайт:

0.0.0.0    facebook.com
0.0.0.0    www.facebook.com

Сопоставить домен для локальной разработки:

127.0.0.1    myproject.local
127.0.0.1    myproject.dev

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

192.168.1.100    mywebsite.com
192.168.1.100    www.mywebsite.com

Вы также можете добавлять встроенные комментарии с помощью символа # для организации файла hosts:

# --- Local Development Projects ---
127.0.0.1    project-alpha.local
127.0.0.1    project-beta.local

# --- Migration Testing: New Server IP 203.0.113.50 ---
203.0.113.50    clientsite.com
203.0.113.50    www.clientsite.com

Шаг 5 — Сохраните файл

После внесения изменений в nano:

  1. Нажмите Control + O для записи (сохранения) файла
  2. Нажмите Enter для подтверждения имени файла
  3. Нажмите Control + X для выхода из nano

Шаг 6 — Очистите кэш DNS

Редактирования файла hosts недостаточно — macOS кэширует DNS-запросы, поэтому необходимо очистить кэш DNS, чтобы система немедленно распознала новые записи.

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

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Эта команда выполняет два действия:

  • dscacheutil -flushcache — очищает локальный кэш DNS
  • killall -HUP mDNSResponder — перезапускает процесс mDNSResponder, который обрабатывает разрешение DNS в macOS

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

> Примечание о версии macOS: Приведённая выше команда очистки работает в macOS Monterey, Ventura, Sonoma и Sequoia. В более старых версиях (до Yosemite) команда может немного отличаться.

Подробное рассмотрение реальных вариантов использования

Вариант использования 1: Блокировка веб-сайтов

Файл hosts — один из самых простых и эффективных способов блокировки отвлекающих или вредоносных веб-сайтов на системном уровне — без стороннего программного обеспечения.

Сопоставляя домен с 0.0.0.0 (немаршрутизируемым адресом), вы не позволяете браузеру когда-либо достичь сайта:

0.0.0.0    reddit.com
0.0.0.0    www.reddit.com
0.0.0.0    twitter.com
0.0.0.0    www.twitter.com

В отличие от расширений браузера, эта блокировка применяется на уровне всей системы — она затрагивает каждый браузер и приложение на вашем Mac.

Вариант использования 2: Локальные среды разработки

Если вы создаёте веб-сайты или веб-приложения локально, файл hosts позволяет назначать пользовательские доменные имена вашей локальной среде вместо использования стандартного http://localhost или http://127.0.0.1.

127.0.0.1    myshop.local
127.0.0.1    clientproject.local
127.0.0.1    wordpress-staging.local

Это особенно полезно при работе с проектами на WordPress, Joomla или Laravel, которые используют абсолютные URL-адреса или домены cookie, привязанные к конкретному имени хоста. В сочетании с локальным стеком веб-сервера (например, MAMP, Laravel Valet или контейнером Docker) вы получаете профессиональный рабочий процесс локальной разработки.

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

Вариант использования 3: Тестирование миграции серверов без распространения DNS

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

Файл hosts позволяет немедленно просмотреть сайт на новом сервере со своей машины, не затрагивая никого другого.

Пример сценария: Вы переносите mywebsite.com на новый Выделенный сервер с IP-адресом 203.0.113.50. Добавьте эту запись:

203.0.113.50    mywebsite.com
203.0.113.50    www.mywebsite.com

Теперь, когда вы вводите mywebsite.com в браузере, ваш Mac загружает сайт с нового сервера — даже если публичный DNS всё ещё указывает на старый. Это позволяет вам:

  • Убедиться, что все страницы загружаются корректно
  • Проверить, что SSL-сертификаты установлены правильно
  • Протестировать контактные формы, процессы оформления заказа и динамический функционал
  • Подтвердить целостность подключений к базе данных и медиафайлов

Как только вы убедитесь, что всё работает, обновите публичные DNS-записи. Переход будет незаметным для ваших посетителей.

Вариант использования 4: Обход DNS для устранения неполадок

Иногда проблемы с DNS могут сделать сайт недоступным, даже когда сам сервер работает нормально. Файл hosts позволяет полностью обойти DNS и подключиться напрямую к известному IP-адресу для диагностики проблемы.

Это особенно полезно, когда:

  • DNS-записи вашего домена настроены неправильно
  • Вы тестируете новую установку SSL-сертификатов до распространения DNS
  • Вам нужно убедиться, что сервер отвечает корректно, пока решаются проблемы с DNS

Вариант использования 5: Тестирование конфигураций почтового хостинга

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

Проверка изменений файла hosts

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

cat /etc/hosts

Вы также можете использовать команду ping для проверки того, что имя хоста разрешается в ожидаемый IP-адрес:

ping mywebsite.com

В выводе должен отображаться IP-адрес, который вы сопоставили в файле hosts.

Восстановление файла hosts по умолчанию

Если ваш файл hosts стал перегружен или что-то пошло не так, вы можете сбросить его до состояния по умолчанию. Откройте файл с помощью sudo nano /etc/hosts, удалите все пользовательские записи и убедитесь, что файл содержит только исходные значения по умолчанию:

##
# 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

Сохраните файл, выйдите из nano и очистите кэш DNS с помощью команды из шага 6. Ваша система вернётся к использованию стандартного DNS-разрешения для всех доменов.

Соображения безопасности

Хотя файл hosts является мощным инструментом, помните о следующих рекомендациях по безопасности:

  • Ограничьте доступ: Только администраторы должны иметь право на запись в /etc/hosts. Проверьте права доступа с помощью ls -la /etc/hosts — должно отображаться -rw-r--r--.
  • Удаляйте тестовые записи после использования: Не оставляйте записи для тестирования миграции после завершения работы. Впоследствии они могут вызвать путаницу и непредвиденное поведение.
  • Остерегайтесь вредоносного ПО: Некоторые вредоносные программы изменяют файл hosts для перенаправления легитимных доменов на вредоносные серверы. Периодически проверяйте файл hosts, чтобы убедиться в отсутствии несанкционированных записей.
  • Используйте контроль версий для команд: Если несколько разработчиков совместно используют среду разработки, рассмотрите возможность документирования записей файла hosts в общем README или файле конфигурации под контролем версий.

Краткий справочник: основные команды

ЗадачаКоманда
Открыть файл hosts для редактированияsudo nano /etc/hosts
Просмотреть файл hosts (только чтение)cat /etc/hosts
Очистить кэш DNS (macOS Ventura/Sonoma)sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Проверить права доступа к файлуls -la /etc/hosts
Проверить разрешение имени хостаping yourdomain.com
Сохранить в nanoControl + O, затем Enter
Выйти из nanoControl + X

Часто задаваемые вопросы

Нужно ли перезагружать Mac после редактирования файла hosts?

Нет. Достаточно очистить кэш DNS с помощью команды dscacheutil. Перезагрузка не требуется.

Повлияют ли изменения файла hosts на других пользователей моего Mac?

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

Работает ли файл hosts с HTTPS?

Да, но с оговоркой. Файл hosts управляет только разрешением IP — он не обрабатывает SSL/TLS-сертификаты. Если вы перенаправляете домен на новый сервер через файл hosts, а SSL-сертификат на этом сервере не соответствует домену, браузер отобразит предупреждение о сертификате.

Можно ли использовать подстановочные знаки в файле hosts?

Нет. Файл hosts в macOS не поддерживает записи с подстановочными знаками. Каждое имя хоста должно быть явно указано на отдельной строке.

Повлияет ли редактирование файла hosts на мой VPN?

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

Заключение: возьмите полный контроль над локальным DNS

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

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

15%

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

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

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

Skills
Начать