Файл Hosts в Linux
Файл hosts является важным компонентом многих операционных систем, включая Linux VPS Hosting. Он служит локальным инструментом системного уровня для сопоставления имен хостов с 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-адрес, в который должно преобразовываться имя хоста.
- hostname: имя домена или хоста.
- псевдоним (необязательно): Альтернативные имена для хоста, которые можно добавить для удобства.
Например, если вы хотите сопоставить домен 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 при изменении этого важного системного файла!