Замовляйте VPS-сервер зі скидкою 15%
Акція завершиться через
00Днів
:
00Годин
:
00Хвилин
:
00Секунд

Файл hosts: що це, де знаходиться і як його редагувати

Іноді сайт відкривається у всіх, окрім вас. Або навпаки - домен ще навіть не делеговано, а ви вже хочете перевірити, як на ньому стане новий сервер. В обох випадках відповідь часто ховається в одному маленькому текстовому файлі, про який згадують рідко, - у файлі hosts.

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

Астронавт із записником hosts спрямовує доменні імена на IP-адреси серверів в обхід хмари DNS
Файл hosts - це локальний записник відповідностей домен - IP, до якого система звертається раніше, ніж до DNS.

Навіщо взагалі потрібен файл hosts

Коли ви відкриваєте у браузері будь-яку адресу, система спочатку має перетворити домен на IP. За замовчуванням цим займається DNS. Але перш ніж іти до DNS-сервера, ОС зазирає в локальний файл hosts. Якщо потрібний запис там є - система використовує його й до DNS взагалі не звертається.

Із цього виростає кілька цілком практичних сценаріїв.

  • Перевірити новий сервер до перенесення DNS. Ви замовили VPS, розгорнули сайт, але домен ще вказує на старий хостинг. Прописавши в hosts зв'язку "домен - нова IP", ви побачите сайт на новому сервері тільки в себе, нічого при цьому не ламаючи для інших відвідувачів.
  • Локально заблокувати домен. Вказавши для домену адресу або , ви закриваєте до нього доступ на конкретній машині - так працюють багато саморобних блокувальників реклами та батьківський контроль.
  • Обійти зламаний або підмінений DNS. Якщо DNS-резолвер видає неправильну відповідь, тимчасовий запис у hosts дозволяє достукатися до сервісу напряму.
  • Робота в локальній мережі та розробка. Зручно завести собі зрозумілі імена на кшталт для машин без публічних доменів.

Важливе застереження: hosts діє тільки на тій машині, де ви його редагуєте. Це не налаштування домену й не заміна DNS для всього світу - відвідувачі вашого сайту змін у вашому hosts не побачать.

Як виглядає файл hosts усередині

Вміст гранично простий. Кожен рядок - це IP-адреса, потім один або кілька пробілів (чи табуляція), потім доменне ім'я. Рядки, що починаються із символу , вважаються коментарями та ігноруються.

Тут - це завжди сам локальний комп'ютер (loopback), а - його ж адреса у форматі IPv6. Ці два рядки чіпати зазвичай не потрібно: на них зав'язана коректна робота системи.

Порядок визначення імені: пристрій, потім hosts, потім DNS
Спершу система перевіряє hosts, і лише якщо відповідного запису немає, запит вирушає до DNS.

Де знаходиться файл hosts

Шлях залежить від операційної системи. Сам файл усюди називається однаково - , без розширення.

Операційна системаШлях до файлу hosts
WindowsC:\Windows\System32\drivers\etc\hosts
Linux/etc/hosts
macOS/etc/hosts

В усіх трьох системах для редагування hosts потрібні права адміністратора (root). Без них файл відкриється тільки на читання, і зберегти зміни не вийде.

Як відредагувати hosts у Windows

Головна складність у Windows - саме права доступу. Якщо відкрити файл звичайним подвійним кліком, відредагувати його не дадуть. Тому редактор потрібно запускати від імені адміністратора.

  1. Натисніть "Пуск", почніть вводити Блокнот.
  2. Клацніть по ньому правою кнопкою та виберіть Запуск від імені адміністратора.
  3. У Блокноті відкрийте файл через меню "Файл - Відкрити" та перейдіть за шляхом .
  4. У полі типу файлів виберіть "Усі файли", інакше hosts (він без розширення) просто не буде видно.
  5. Відкрийте , внесіть потрібні рядки та збережіть звичайним Ctrl + S.

Якщо під час збереження Windows усе одно скаржиться на доступ - майже напевно редактор було запущено не від адміністратора. Закрийте його та відкрийте заново правильним способом. В окремих випадках правки hosts може блокувати антивірус або Microsoft Defender, розцінюючи їх як потенційно небажані - тоді правку потрібно підтвердити в його сповіщенні.

Як відредагувати hosts у Linux

На сервері найпростіше працювати через SSH і консольний редактор nano. Команду потрібно виконувати від root або через .

Додайте потрібний рядок у кінець файлу, наприклад, щоб домен вказував на конкретний сервер:

Збережіть файл сполученням Ctrl + O та підтвердьте ім'я клавішею Enter, потім вийдіть із редактора через Ctrl + X. Зміни набувають чинності одразу, перезавантаження сервера не потрібне.

Альтернатива: додати рядок однією командою, без редактора

Іноді зручно дописати запис у hosts однією командою. Може виникнути спокуса скористатися перенаправленням , але не спрацює: перенаправлення виконує сама оболонка від вашого імені, а не від root. Тому беруть із прапорцем (від append) - він дописує рядок у кінець файлу від імені root. Без команда перезаписала б увесь файл.

Як відредагувати hosts у macOS

У macOS шлях той самий, що й у Linux. Відкрийте "Термінал" і виконайте:

Система запитає пароль адміністратора. Далі все так само: додаєте рядок, зберігаєте Ctrl + O, виходите Ctrl + X. Після правки в macOS іноді корисно скинути кеш DNS, щоб зміни підхопилися напевно:

↙ Щоб скопіювати, натисніть на рядок

Як перевірити, що запис у hosts працює

Після правки варто переконатися, що система справді перетворює домен на потрібну IP. Найпростіший спосіб - команда : у її виводі видно, на яку адресу йде запит.

Якщо у відповіді вказано ту IP, яку ви прописали в hosts, - запис застосувався. Урахуйте, що багато серверів не відповідають на ping (ICMP закритий фаєрволом), і це нормально: важливий саме рядок із перетворенням адреси, а не самі відповіді. На Windows для перевірки зручніший , але він показує відповідь DNS і hosts може ігнорувати - тому саме для hosts надійніше орієнтуватися на або на реальне відкриття сайту в браузері.

Якщо зміни не підхоплюються, очистіть кеш DNS. У Windows - командою у консолі, запущеній від адміністратора. У Linux це залежить від використовуваного резолвера (наприклад, або перезапуск ).

Астронавт захищає файл hosts від спроби вписати в нього підроблений рядок
hosts перевіряється раніше за DNS, тому його полюбляють віруси - заглядайте у файл час від часу.

Безпека: чому hosts люблять віруси

Оскільки hosts перевіряється раніше за DNS, він стає ласою ціллю для шкідливого ПЗ. Класичний прийом фішингу - дописати в hosts рядок, який уводить банківський або поштовий домен на підроблену IP. Користувач набирає звичну адресу, а потрапляє на сайт-клон.

Тому є сенс час від часу зазирати у свій hosts. Якщо ви бачите там незнайомі рядки з відомими доменами (банки, соцмережі, пошта), яких ви туди не додавали, - це привід насторожитися та перевірити систему антивірусом.

Перед будь-якою правкою hosts корисно зберегти його копію. На Linux це одна команда: . Якщо щось піде не так, ви завжди повернете початковий стан.

Часті помилки під час роботи з hosts

  • Файл збережено з розширенням. У Windows Блокнот любить додати , і виходить - такий файл система не читає. Ім'я має лишитися рівно , без розширення.
  • Немає прав адміністратора. Найчастіша причина "не зберігається". Редактор має бути запущений від імені адміністратора (Windows) або команда виконана через (Linux/macOS).
  • Зайві пробіли чи таби не розділяють IP і домен. Між адресою та ім'ям має бути хоча б один пробіл або табуляція. Зліплені разом працювати не будуть.
  • Забули про кеш DNS. Іноді правка вірна, але стара відповідь ще закешована - допомагає скидання кешу та перезапуск браузера.
  • Випадково видалили рядок localhost. Рядки та краще не чіпати: на них зав'язана робота системних сервісів.

Коротко про головне

Файл hosts - це локальна таблиця відповідності "домен - IP", до якої система звертається раніше, ніж до DNS. Він не налаштовує домен глобально та діє тільки на одній машині, але саме тому зручний: ним можна безпечно перевірити новий сервер до перенесення DNS, локально закрити доступ до домену або обійти збійний резолвер.

Якщо ви переносите проєкт на новий сервер і хочете перевірити його на своєму домені до зміни DNS, додайте в hosts зв'язку "ваш домен - IP нового VPS". Так ви переконаєтеся, що сайт коректно піднявся на новому майданчику, ще до того як пустите на нього реальних відвідувачів. Сервери SpaceCore з повним root-доступом дозволяють розгорнути та перевірити оточення саме за таким сценарієм - без поспіху та простою для користувачів.

Часті запитання

Чи потрібно перезавантажувати комп'ютер після правки hosts?

Ні. Зміни застосовуються одразу. Іноді потрібно лише закрити й відкрити браузер або скинути кеш DNS, якщо стара відповідь закешована.

Чи можна вказати одну IP для кількох доменів?

Так. Кожен домен пишеться окремим рядком з однією й тією самою IP, або кілька імен можна вказати в одному рядку через пробіл після адреси.

Чим відрізняється 127.0.0.1 від 0.0.0.0 під час блокування домену?

Обидва варіанти "відправляють" домен у нікуди на локальній машині. завертає запит на сам комп'ютер (і іноді спричиняє коротку затримку під час спроби з'єднання), а частіше призводить до миттєвої відмови. Для блокування зазвичай надають перевагу .

Чому запис у hosts не працює?

Найчастіше причина в одному з трьох: файл збережено без прав адміністратора, у нього з'явилося зайве розширення, або не скинуто кеш DNS. Перевірте ці три пункти насамперед.