Компьютерный файл hosts — это файл операционной системы, который сопоставляет имена хостов с IP-адресами . Это простой текстовый файл. Первоначально файл с именем HOSTS.TXT поддерживался вручную и предоставлялся через файлообмен Стэнфордским исследовательским институтом для членов ARPANET , содержащим имена хостов и адреса хостов, предоставленные для включения организациями-членами. Система доменных имен , впервые описанная в 1983 году и внедренная в 1984 году, [1] автоматизировала процесс публикации и обеспечивала мгновенное и динамическое разрешение имен хостов в быстрорастущей сети. В современных операционных системах файл hosts остается альтернативным механизмом разрешения имен , часто настраиваемым как часть таких средств, как коммутатор службы имен, как в качестве основного метода, так и в качестве резервного метода.
Файл hosts — это одно из нескольких системных средств, помогающих адресовать сетевые узлы в компьютерной сети. Это общая часть реализации протокола Интернета (IP) операционной системы, и он выполняет функцию преобразования понятных человеку имен хостов в числовые адреса протокола, называемые IP-адресами , которые идентифицируют и находят хост в сети IP.
В некоторых операционных системах содержимое файла hosts используется преимущественно по сравнению с другими методами разрешения имен, такими как система доменных имен (DNS), но многие системы реализуют переключатели службы имен , например, nsswitch.conf для Linux и Unix , для обеспечения настройки. В отличие от удаленных DNS-резолверов, файл hosts находится под прямым контролем администратора локального компьютера. [2]
Файл hosts содержит строки текста, состоящие из IP-адреса в первом текстовом поле, за которым следует одно или несколько имен хостов. [3] Имена хостов сопоставляются с IP-адресами, а не наоборот. Каждое поле разделяется пробелом — табуляция часто предпочтительнее по историческим причинам, но пробелы также используются. Могут быть включены строки комментариев; они обозначены восьмиугольником ( #) в первой позиции таких строк. Полностью пустые строки в файле игнорируются. [4] Например, типичный файл hosts может содержать следующее:
127.0.0.1 локальный хост петля обратной связи::1 локальный хост
Этот пример содержит только записи для адресов обратной связи системы и их имен хостов, типичное содержимое файла hosts по умолчанию. Пример иллюстрирует, что IP-адрес может иметь несколько имен хостов ( localhost и loopback ), и что имя хоста может быть сопоставлено как с IP-адресами IPv4 , так и с IPv6 , как показано в первой и второй строках соответственно.
Расположение файла hosts в иерархии файловой системы зависит от операционной системы. Обычно он называется hosts , без расширения.
ARPANET , предшественник Интернета , не имел распределенной базы данных имен хостов. Каждый сетевой узел поддерживал собственную карту сетевых узлов по мере необходимости и присваивал им имена, которые были запоминающимися для пользователей системы. Не было метода, гарантирующего, что все ссылки на данный узел в сети используют одно и то же имя, и не было способа прочитать файл hosts другого компьютера, чтобы автоматически получить копию.
Небольшой размер ARPANET позволял снизить административные издержки на поддержание точного файла хостов. Сетевые узлы обычно имели один адрес и могли иметь много имен. Однако по мере того, как локальные компьютерные сети TCP/IP набирали популярность, поддержание файлов хостов становилось все более обременительным для системных администраторов, поскольку сети и сетевые узлы добавлялись в систему все чаще.
Усилия по стандартизации, такие как спецификация формата файла HOSTS.TXT в RFC 952, и протоколы распространения, например, сервер имен хостов, описанный в RFC 953, помогли решить эти проблемы, но централизованная и монолитная природа файлов хостов в конечном итоге потребовала создания распределенной системы доменных имен (DNS).
В некоторых старых системах присутствует файл с именем networks, похожий на файл hosts, содержащий имена сетей. [13]
В своей функции разрешения имен хостов файл hosts может использоваться для определения любого имени хоста или доменного имени для использования в локальной системе.
Файл hosts может представлять собой вектор атаки для вредоносного ПО. Файл может быть изменен, например, рекламным ПО , компьютерными вирусами или троянским ПО для перенаправления трафика с предполагаемого места назначения на сайты, размещающие вредоносный или нежелательный контент. [19] Широко распространенный компьютерный червь Mydoom.B блокировал пользователям посещение сайтов о компьютерной безопасности и антивирусном программном обеспечении , а также влиял на доступ с зараженного компьютера к веб-сайту Microsoft Windows Update .
В некоторых случаях вредоносное ПО модифицировало библиотеку, отвечающую за загрузку файла hosts, чтобы перенаправить его в файл, которым оно может свободно управлять. [20]