Файл hosts у Linux
Файл hosts є важливим компонентом багатьох операційних систем, зокрема й VPS-хостингу Linux. Він слугує інструментом локального системного рівня для зіставлення імен хостів з IP-адресами, допомагаючи вашому комп’ютеру знаходити і підключатися до різних серверів або пристроїв в Інтернеті або локальній мережі. Розуміння того, як працює файл hosts і як його змінювати, може бути корисним для усунення несправностей, блокування певних сайтів або налаштування користувацьких доменних імен для цілей розробки. У цій статті ми розглянемо, що таке файл hosts, де він знаходиться в Linux і як його ефективно редагувати.
1. Що таке файл hosts?
Файл hosts – це звичайний текстовий файл, який використовується операційною системою для зіставлення людських імен хостів (наприклад, www.example.com) з відповідними IP-адресами. Він функціонує подібно до системи доменних імен (DNS), але працює локально на вашому комп’ютері. Файл використовується перед запитом до зовнішніх DNS-серверів, дозволяючи вам замінити дозвіл DNS власним зіставленням.
Основні способи використання файлу hosts включають
- Відображення домену для місцевого розвитку: Розробники часто використовують файл hosts для створення локальних тестових середовищ, зіставляючи власні доменні імена з localhost (127.0.0.1).
- Блокування доступу до певних веб-сайтів: Ви можете заблокувати доступ до певних веб-сайтів, вказавши їх доменні імена на немаршрутизовані IP-адреси, наприклад, 0.0.0.0 або 127.0.0.1.
- Швидке усунення несправностей DNS: Файл hosts можна використовувати для усунення проблем з DNS або тестування конфігурацій веб-сайтів без зміни реальних записів DNS.
2. Розташування файлу hosts в Linux
У системах Linux файл hosts зазвичай знаходиться у каталозі /etc і має назву hosts. Повний шлях до файлу наступний:
/etc/hosts
Цей файл зазвичай попередньо налаштовано з деякими записами за замовчуванням для керування локальною мережею. Наприклад, запис для localhost зазвичай включено за замовчуванням:
127.0.0.1 localhost ::1 localhost
3. Структура файлу hosts
Файл hosts має просту структуру. Кожен рядок файлу містить IP-адресу, за якою слідує одне або декілька імен хостів, що відповідають цій адресі. Формат файлу наступний:
- IP_адреса: IP-адреса, на яку ви хочете, щоб ім’я хоста було перетворено.
- ім’я хоста: Домен або ім’я хоста.
- псевдонім (необов’язково): Альтернативні імена для хоста, які можна додати для зручності.
Наприклад, якщо ви хочете зіставити домен example.com з локальним сервером (localhost), ви повинні додати наступний рядок:
Ви також можете додати кілька імен хостів в одному рядку, наприклад, так:
4. Редагування файлу hosts у Linux
Щоб змінити файл hosts у системі Linux, вам потрібні адміністративні (root) привілеї, оскільки цей файл є частиною конфігурації системи. Ось покроковий посібник з редагування файлу hosts:
Крок 1: Відкрийте файл hosts від імені користувача root
Оскільки для редагування файлу hosts вам потрібні привілеї root, ви повинні відкрити його за допомогою текстового редактора за допомогою sudo. Поширеними текстовими редакторами є nano і vim. Ось як відкрити файл за допомогою nano:
sudo nano /etc/hosts
Крок 2: Редагування файлу hosts
Після відкриття файлу ви можете додавати, змінювати або видаляти записи за потреби. Наприклад, щоб заблокувати доступ до такого веб-сайту, як example.com, ви можете додати наступний рядок:
Це ефективно блокує веб-сайт, вказуючи домен на немаршрутизовану IP-адресу.
Крок 3: Збереження та вихід
Після внесення змін збережіть файл. Якщо ви використовуєте nano, натисніть CTRL O, щоб записати зміни, а потім натисніть Enter. Щоб вийти, натисніть CTRL X.
Якщо ви використовуєте vim, ви можете зберегти і вийти, набравши :
Крок 4: Перевірте зміни
Щоб перевірити, чи зміни вступили в силу, ви можете скористатися командою ping або просто спробувати отримати доступ до домену в браузері. Наприклад:
Якщо ви заблокували домен, зіставивши його з 0.0.0.0 або 127.0.0.1, ви побачите повідомлення про те, що хост недоступний.
5. Поширені випадки використання файлу hosts
5.1. Місцевий розвиток
Під час роботи над проектами веб-розробки ви можете використовувати файл hosts для прив’язки власних доменів до localhost. Це дозволить вам використовувати більш зрозумілу для людини URL-адресу, наприклад, myproject.local замість localhost:3000.
Приклад:
127.0.0.1 myproject.local
Після додавання цього запису ви можете перейти до myproject.local у вашому веб-браузері, і він вкаже на ваш локальний сервер розробки.
5.2. Блокування веб-сайтів
Ви можете використовувати файл hosts для блокування доступу до певних веб-сайтів, зіставивши їхні домени з 0.0.0.0 або 127.0.0.1. Це корисно для запобігання доступу до відволікаючих веб-сайтів або потенційно шкідливих доменів.
Приклад:
Це заблокує доступ до Facebook, перенаправляючи запити на неіснуючу локальну адресу.
5.3. Обхід проблем з DNS
Якщо у вас виникли проблеми з дозволом DNS або ви хочете протестувати веб-сайт на новому сервері перед оновленням записів DNS, ви можете використовувати файл hosts, щоб тимчасово прив’язати домен до певної IP-адреси.
Приклад:
Це змусить вашу систему розпізнавати mywebsite.com як IP-адресу 203.0.113.15, незалежно від того, що вказано в DNS-записах.
6. Очищення кешу DNS (необов’язково)
Після внесення змін до файлу hosts ваша операційна система може зберігати в кеші попередні DNS-дозволи. Щоб негайно застосувати зміни, вам може знадобитися очистити кеш DNS. Наступна команда може бути використана у системах Linux, які підтримують systemd:
sudo systemctl restart systemd-resolved
Крім того, ви можете використати
sudo service network-manager restart
Це забезпечить негайне використання нових зіставлень у файлі hosts.
Висновок
Файл hosts – це потужний інструмент для керування тим, як ваша система вирішує доменні імена. Якщо ви блокуєте небажані веб-сайти, налаштовуєте локальне середовище розробки або усуваєте проблеми з DNS, знання того, як змінити файл hosts, може заощадити час і покращити можливості керування мережею. У Linux редагування файлу hosts є простим і може бути виконано всього за кілька кроків за допомогою базових команд терміналу. Тільки не забувайте використовувати привілеї root при зміні цього важливого системного файлу!