Гид по технологиям

Как редактировать файл hosts в Linux

• 4 min read • Linux • Обновлено 26 Nov 2025
Как редактировать файл hosts в Linux
Как редактировать файл hosts в Linux

Кратко:

Файл hosts в Linux позволяет сопоставлять IP‑адреса и имена хостов локально — это простой способ быстро обращаться к вашим серверам и виртуальным машинам без DNS. Резервное копирование, права root и учёт кэшей DNS решают почти все проблемы при его использовании.

Редактирование файла hosts в Linux

Файл /etc/hosts хранит локальную таблицу, где каждая строка связывает IP‑адрес с одним или несколькими именами хостов. Это работает без DNS‑сервера, потому что система читает этот файл на компьютере. Файл удобен для локальных сетей, тестирования, переадресации или упрощения доступа к часто используемым машинам.

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

Файл hosts — это простой текстовый файл, который разрешает имена хостов в IP‑адреса до обращения к внешнему DNS. Кратко:

  • Местоположение: /etc/hosts
  • Формат: каждая запись — одна строка: IP, пробел(ы), имена хостов
  • Применение: локальная разработка, домашняя сеть, виртуальные машины, тестирование

Определение в одной строке: hosts — локальная карта IP → имя, приоритетнее внешнего DNS для локальной машины.

Как использовать файл hosts

  1. Посмотрите текущие записи:
cat /etc/hosts
  1. Создайте резервную копию перед редактированием:
sudo cp /etc/hosts /etc/hosts.bak
  1. Откройте файл в редакторе с правами root:
sudo nano /etc/hosts
# или
sudo vim /etc/hosts

Образец строки в hosts:

ip-address    hostname other-hostname

Пример для Pi‑Hole (IPv4):

192.168.122.7   pihole.local

Пример для виртуальной машины:

192.168.122.202   linux-vm.local

Пример IPv6:

::1             ip6-localhost ip6-loopback
fe80::1%lo0     ipv6-local

Замечания:

  • Можно использовать короткие имена (например, pihole) или домены .local/.lab — это вопрос удобства.
  • На одной строке можно указать несколько имён; первое имя обычно считается основным.

Формат и правила

  • Разделители: один или несколько пробелов или символ табуляции.
  • Комментарии: строка, начинающаяся с #, игнорируется.
  • Порядок: запись в hosts обрабатывается локальным резолвером раньше, чем внешний DNS (в большинстве стандартных конфигураций).
  • Порты не указываются в hosts — только имена и IP.

Частые ошибки и как их избежать

  • Редактирование без sudo: изменения не сохранятся. Всегда используйте sudo или откройте редактор от root.
  • Забытый пробел между IP и именем или лишние непечатаемые символы: используйте простые пробелы/табуляцию.
  • Браузер или системный DNS‑кэш: после изменения может потребоваться очистка кэша.

Команды для очистки кэшей (зависит от системы):

  • systemd‑resolved: sudo resolvectl flush-caches
  • nscd: sudo systemctl restart nscd
  • dnsmasq: sudo systemctl restart dnsmasq
  • браузер: перезапустить или очистить внутренний DNS‑кэш

Когда hosts не сработает

  • Если служба разрешения имён игнорирует /etc/hosts в вашей конфигурации NSS (посмотрите /etc/nsswitch.conf).
  • Если используется корпоративный прокси/VPN, который перенаправляет DNS‑запросы внешним образом.
  • При конфликте с mDNS/Avahi: два механизма могут привязывать одно и то же имя к разным адресам.
  • Если запись перекрыта программно локальным кэшем DNS (например, в браузере) — очистите кэш.

Альтернативы и когда их выбрать

  • Настройка локального DNS (BIND, dnsmasq): лучше для большого количества записей и централизованного управления.
  • mDNS/Avahi: хороший выбор для автоматического обнаружения устройств в локальной сети без ручной правки.
  • DHCP‑резервации в роутере: если хотите неизменный IP для устройства без правки hosts на каждом клиенте.

Выбор: если у вас несколько клиентов, используйте локальный DNS; для пары устройств hosts проще и быстрее.

Права доступа и безопасность

  • /etc/hosts обычно доступен для чтения всем, но запись требует root.
  • Не храните конфиденциальную информацию в именах хостов.
  • Регулярно делайте резервные копии перед массовыми изменениями.

Советы по отладки

  • Проверьте содержимое файла: cat /etc/hosts
  • Убедитесь в отсутствии лишних символов: od -c /etc/hosts | sed -n ‘1,20p’
  • Попробуйте ping по имени и по IP, чтобы увидеть, что возвращается:
ping -c 3 pihole.local
ping -c 3 192.168.122.7
  • Если имя всё ещё резолвится неправильно, проверьте /etc/nsswitch.conf на строке hosts: порядок должен быть hosts: files dns … чтобы /etc/hosts использовался первым.

Чек-листы по ролям

Системный администратор:

  • Сделать резервную копию /etc/hosts
  • Добавить запись в соответствии со стандартом именования
  • Проверить разрешение имени и перезапустить нужные сервисы (nscd, dnsmasq, systemd‑resolved)
  • Залогировать изменения в систему управления конфигурацией

Разработчик:

  • Добавить временные записи для разработки
  • Очистить кэш DNS в браузере
  • Удалить/восстановить изменения после завершения тестов

Домашний пользователь:

  • Использовать простые короткие имена (server, pihole)
  • Делать одну резервную копию перед правкой
  • Не трогать системные строки без понимания

Шпаргалка команд

sudo cp /etc/hosts /etc/hosts.bak         # резервная копия
sudo nano /etc/hosts                       # редактирование
cat /etc/hosts                             # просмотр
sudo resolvectl flush-caches               # очистить кэш systemd-resolved
sudo systemctl restart nscd                # перезапустить nscd

Критерии приёмки

  • Новая запись присутствует в /etc/hosts и не содержит опечаток.
  • Разрешение имени возвращает ожидаемый IP: ping имя → IP.
  • При необходимости кэш сервиса был очищен и изменения видны через все клиенты.

Частые кейсы и примеры

  • Блокировка домена: 0.0.0.0 badsite.example
  • Локальное тестирование: 127.0.0.1 test.local
  • Несколько имён для одной машины: 192.168.1.10 db db.internal db1

Резюме

Использование файла hosts — быстрый и надёжный способ локального сопоставления имён и IP‑адресов без развертывания DNS. Главное — работать с правами root, делать резервные копии и не забывать про кэширование. Для масштабных сценариев лучше выбирать локальный DNS или DHCP‑резервации.

Важно:

  • Всегда делайте резервную копию перед изменением.
  • Проверяйте /etc/nsswitch.conf, если изменения не применяются.
  • Очистка кэша часто решает большинство проблем.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро