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