Файл 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 Search: Натисніть
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:
- Натисніть
Control + Oдля запису (збереження) файлу - Натисніть
Enterдля підтвердження імені файлу - Натисніть
Control + Xдля виходу з nano
Крок 6 — Очистіть кеш DNS
Редагування файлу hosts само по собі недостатньо — macOS кешує DNS-запити, тому вам потрібно очистити кеш DNS, щоб змусити систему негайно розпізнати нові записи.
Виконайте таку команду в Terminal:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderЦя команда виконує дві дії:
dscacheutil -flushcache— очищає локальний кеш DNSkillall -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 для перенаправлення легітимних доменів на шкідливі сервери. Periodically review your hosts file to ensure no unauthorized entries exist.
- Використовуйте контроль версій для команд: Якщо кілька розробників спільно використовують середовище розробки, розгляньте можливість документування записів файлу 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 |
| Зберегти в nano | Control + O, потім Enter |
| Вийти з nano | Control + 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 розпізнає будь-який домен в інтернеті.
