Что за зверь файл hosts?

Знаете ли вы, что в Интернете используются только цифровые адреса (они же IP) сайтов? А буквенные адреса web-страниц были придуманы исключительно для удобства запоминания их пользователем. Но компьютеры соединяются между собой только по цифровому IP.

Чтобы перевести непонятную компьютеру буквенную абракадабру типа www.qsl.net в понятный ему IP адрес (в данном случае в IP 69.16.226.196) задействуется служба DNS (domane name server), которая знает о том какому буквенному имени (хосту) какой IP (цифровой) соответствует. Сервер DNS физически не один - это просто огромной длины (для всех существующих в Интернете буквенных имен) записи вида хост - IP на разных серверах (в том числе, скорее всего и на вашем провайдере).

Поэтому, когда вы набираете у себя в браузере какой-нибудь буквенный адрес (например www.qsl.net) происходит примерно следующий диалог:


Браузер:

- Тут, это... хозяин хочет на www.qsl.net попасть.

Протокол TCP/IP:

- Ага, щас, разбежался. Ты мне не буквы тычь, а IP скажи машины, с которой надо соединиться.

Браузер:

- Я не знаю. Погоди, поищу. Так... На нашем компьютере нет ли случайно записей какому IP соответствует хост www.qsl.net? Нету. Придется у внешнего сервера DNS спрашивать. Эй, DNS-сервер, ты где? Чего молчишь?

DNS-сервер:

- Как же меня достали эти миллионы идиотов, не знающих IP... Погоди, твой запрос в очереди, перед тобой еще 5000 более ранних запросов надо обработать....

Пауза....

DNS-сервер сам себе:

- Ну и где у меня написано про www.qsl.net? Что, нигде? Точно нигде? Наверное это какой-то всеми забытый буржуйский сервер. Нет у меня на него записи. Придется другие DNS сервера спрашивать. Эй, другие DNS-сервера, вы где? Вопрос накопился.

...повторяется сценка с первым ответом DNS сервера, только в это раз велят подождать ему. Наконец, один из DNS-серверов находит у себя запись, что оказывается www.qsl.net это IP 69.16.226.196 и возвращает эту информацию терпеливо ждущему браузеру.

Браузер:

- Фу, ну наконец. Эй TCP/IP соединяйся с IP 69.16.226.196.

TCP/IP ворчиливо:

- Ну так бы сразу и сказал. Соединяюсь. Поехали.


Оказывается, что IP можно сказать и сразу, не тратя ненужное время на опрос удаленных DNS-серверов.
Для этого в служит файл hosts (он текстового формата, но без расширения - так исторически сложилось). Находится он (вернее должен находиться) в каталоге С:\Windows\system32\drivers\etc\

Если система у вас стоит не на диске С и не в каталоге Windows, то вместо С:\Windows укажите свой диск и системную папку.

В этом файле и находятся (вернее могут находиться) записи о том, каким буквенным именам-хостам какие IP соответствуют.

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

... Кстати. В далекое время, когда Земля была еще маленьким шариком и по ней бегали мамонты когда Интернет еще только начинался внешних DNS серверов не было, и все сайты (их тогда было немного) записывали в файл hosts...

Но вернемся в наше время и к нашей загрузке. Если IP запрашиваемого сайта найден в файле hosts, то обращения к внешнему DNS серверу не происходит. То есть загрузка нужной вам страницы начинается быстрее (на время, которое раньше терялось на соединение с внешним DNS сервером и получение от него IP.

Поэтому имеет смысл в свой файл hosts прописать IP тех сайтов, на которые вы часто заглядываете. Результатом станет ускорение их загрузки. Величина выигрыша зависит от многих факторов.

Так, для очень известных сайтов информация о IP скорее всего есть на DNS сервере вашего провайдера, и потому (если провайдер сам по себе не очень тормознут) выигрыш будет небольшим - доли секунды.

Напротив, для сайтов не очень посещаемых средней массой юзеров, поиск нужного DNS и получение инфо от него могут занять до нескольких секунд.

Но в любом случае выигрыш есть и прописав в файл hosts часто посещаемые адреса (например, из своего "Избранного"), вы заметите что интернет стал "шевелиться" быстрее.

Как редактировать и создавать файл hosts?

Зайдите в папку С:\Windows\system32\drivers\etc\ и найдите там файл hosts. Если его там нет, то или не та папка, или совсем старая система. В последнем случае в любом нормальном текстовом редакторе создаете файл с именем hosts (без расширения - важно!) и помещаете его в системный каталог С:\Windows\system32\drivers\etc\ .

В Заполняется файл hosts следующим образом:

В любом нормальном текстовом редакторе отрываете файл hosts и приступаете к редактированию (в Windows 7 система не позволит это сделать, поэтому сначала скопируйте файл hosts на рабочий стол). Заполняется файл hosts так: одна строка (до Enter) запись одного сайта,

- в строке сначала указывается IP, после него пробелов несколько (неважно сколько, но минимум один быть должен, затем имя сайта (без http:// и без субдиректорий). В конце строки также может (но не обязательно) содержаться комментарий: пробел (или несколько, тоже неважно), знак # (означает начало комментария), текст комментария

Вообще, любой текст, начиная от знака # и до конца строки в файле hosts считается комментарием и ни на что не влияет).

Вот отрывок из моего hosts файла:

127.0.0.1 localhost
81.176.66.163 lib.ru
81.176.66.163 www.lib.ru
69.16.226.196 www.qsl.net
69.16.226.196 qsl.net
216.92.114.222 www.ng3k.com
216.92.114.222 ng3k.com

Обратите внимание: для каждого сайта пишется две строки: с www и без такового. Чтобы при любом наборе адреса сайта (с www или без) попасть на нужный IP.

Добавьте в свой файл hosts адреса часто посещаемых вами сайтов. Как узнать их IP? При помощи специально обученной этому делу узнавалки.

После редактирования сохраните файл. А для Windows 7 еще и перенесите сохраненный файл с рабочего стола в в папку С:\Windows\system32\drivers\etc\.

Что еще можно/нужно сделать с файлом hosts?

Можно заблокировать нежелательные сайты, назначив против их имени либо локальный IP 127.0.0.1. либо IP какого-то другого сайта. Например, по журналу вы видите, что ребенок часами просиживает на чем-то типа kiss.ru.

Пара строк в hosts файле вида:

127.0.0.1 kiss.ru
127.0.0.1 www.kiss.ru

вообще закрывает доступ к этому сайту (сообщение об ошибке при соединении).

А строки:

81.176.66.163 kiss.ru
81.176.66.163 www.kiss.ru

работают изощреннее. При наборе в браузере адреса kiss.ru будет происходить соединение с IP 81.176.66.163, т.е. с библиотекой lib.ru. Эдакий тонкий родительский намек: "Оболтус, не с девочками болтай, а книжки читай".

Это же прием используется для борьбы с нерадивыми сотрудниками. В файл hosts на их машинах для всякого рада напрасновремятерятельных сайтов типа odnoklassniki.ru и vkontakte.ru вписываются IP сайта родной конторы (тоже намек:"На работе работать надо, а не фигней страдать") или IP сайта поиска работы (еще один намек куда придется скоро ходить, если в рабочее время интересоваться социальными сетями).

Обратный пример. У вас на работе злобные админы закрыли доступ к какому до зарезу вам нужному прямо сейчас сайту. Например ebay.com. А там скоро заканчивается нужный аукцион. Но если вы дома, при помощи вышеупомянутой узнавалки определили (и записали себе на бумажку или флешку), что ebay.com - это IP 66.211.160.88, то, набрав в адресной строке браузера 66.211.160.88 (вместо ebay.com), попадете на нужный сайт (если конечно, админы не закрыли его и в файле hosts тоже).

Для интенетоголиков может оказаться полезным забанить самих себя на тех сайтах, где вы чрезмерно увлекаетесь и теряете неадекватно много времени. Например, на всех рабочих моих компьютерах в файле hosts записано:

127.0.0.1 d3.ru # нечего попусту время терять
127.0.0.1 www.d3.ru # нечего попусту время терять
127.0.0.1 dirty.ru # нечего попусту время терять
127.0.0.1 www.dirty.ru # нечего попусту время терять
127.0.0.1 lepra.ru # нечего попусту время терять
127.0.0.1 www.lepra.ru # нечего попусту время терять
127.0.0.1 leprosorium.ru # нечего попусту время терять

Конечно, это не очень надежно (если сильно захочется ведь можно подредактировать свой файл hosts), но от ленивого кликания ("загляну-ка на минутку, может что там интересное появилось") вполне спасет (ибо та же лень препятствует залезанию вглубь системных директорий, поиску и открыванию файл hosts ).

Вирусы и файл hosts

Многие вирусы используют способ подмены соответствия хоста IP в файле hosts.

Делается это ими так. Сначала доверчивый пользователь кликает и запускает то, чего запускать не следовало....

... Тут остановлюсь поподробнее.

Вопреки распространенному мнению, самый опасный и не фильтруемый никакими защитными программами вирус сидит у вас между клавиатурой и сидением кресла. Да-да, я именно о Вас, читающих эти строки.

Конечно, производитель антивирусного софта стараются предусмотреть всё и предупредить обо всём. Но где там... Как заметил Марк Твен:"Дураки удивительно разнообразны. Никогда не угадаешь, что они в следующий раз выкинут."

Сколько раз вы (да чего греха таить, и я, бывало, тоже) невзирая на истошные вопли антивирусника (или без таковых) кликали на всякого рода всплывающие окна, запускали "до зарезу нужные" свежескачанные с непонятных сайтов программки (кейгенератор там, или софт для "повышения рейтинга", и т.п)? Вот это как раз оно. Первое дело для вирусописателя: заставить юзера вручную запустить свою программу. Понятно, что юзер дурак не полный, и программу с именем virus.exe и ее описанием: "Запусти и сломай свой компьютер" не запустит. Поэтому пользователя надо обмануть.

Это несложно: он сам обманываться рад. Ему не хочется платить за софт: он ищет кейгены. Ему хочется в обход правил куда-то залезть и чего-то (например, рейтинг себе) изменить. Поэтому вирусная программа это и предлагает. И даже, иногда делает. Но кроме того, дописывает на ваш компьютер вирус или что-то нежелательное, вирусоподобное.

...Так вот, вернемся к нашему юзеру, запустившему подобную дрянь. Один из вариантов ее действия - дописать в ваш файл hosts несколько строк. Поскольку напрямую компьютеру это не вредит, то раньше антивирусники на такое не реагировали (сейчас уже реагируют почти все).

А вписывались в файл hosts IP всяких мусорных или воровских сайтов напротив имен самых посещаемых страниц. В результате юзер набирает в браузере например odnoklassniki.ru, а вместо этого оказывается на странице ошибки или каком-то рекламном сайте.

И это еще пол-беды. Хуже будет, если под мусорным, подменненным IP мошенники разместили сайт, точно с таким дизайном, как и настоящий. В результате, ничего не подозревающий юзер видит вроде бы настоящий (а на самом деле мошеннический, только с виду похожий) сайт, вводит туда как обычно свои имя и пароль (которые оказываются у мошенников) и расстается с акаунтом. Или с деньгами, если это был сайт платежной системы. Мошенники часто подделывают таким образом сайиы PayPal и WebMoney.

Но подделать мало - надо еще обманом затащить туда пользователя. Для этого вирус и дописывает "левые" строки в файл hosts.

Чтобы избежать такого безобразия обязательно поставьте на свой файл hosts метку "read only" (правый клик на файле - Свойства).

Спам

В файле hosts можно заблокировать наиболее зловредные баннерообменные сети и прочие рассадники рекламного мусора. Например строка вида:

127.0.0.1 www.bannerdrive.ru
отключит загрузку баннеров с www.bannerdrive.ru (имеетя, в виду не то, что вы туда заходите, а то, что баннеры с этого сайта размещены на других сайтах). Определить с каких хостов грузятся ненужные вам баннеры можно покопавшись в папке временных файлов интернета (Свойства обозревателя - Общие - Параметры - Просмотр файлов).

В принципе, в интернете можно найти очень большие (до 1 МБ) файлы hosts, в которых вписаны - блокированы тысячи рекламных серверов. Но не увлекайтесь этим особо - большие (от нескольких десятков кБ) файлы hosts требуют заметного времени на их просмотр, что подтормаживает работу.
Но сильно экономить строки тоже не надо - файлы до 10 кБ ничего не тормозят даже на старых машинах, а 10 кБ - это многие сотни строк.

Проблемы

Иногда (очень редко) сайты сохраняя имя, меняют IP (скажем перевод сайта полностью на другой сервер). Случается это крайне редко, у большинства сайтов никогда. Но если все-таки случилось (а об этом всегда объявляют заблаговременно), то в файле hosts придется исправить IP со старого на новый.

Если сайт хостится на виртуальном сервере, то его доменное имя становится не полностью тождественным его IP. В этом случае одному IP-адресу может соответствовать несколько разных имен. Это называется виртуальный хостинг. Поэтому для таких сайтов браузеру кроме IP (по-прежнему необходимому) приходится добавлять еще и имя (а как вы иначе рассортируете разные сайты, кучей сидящие на одном IP?)

В этом случае, запись в файл hosts может не сработать: одного IP мало для определения с чем именно соединиться браузеру.

Как определить, что перед вами виртуальный хостинг? Скопируйте в адресную строку браузера IP, полученный от узнавалки. Если при этом откроется исходный сайт - все нормально. Если же будет что-то другое (страница ошибки, входная страница хостинга, и т.п.), то это виртуальный хостинг, и управлять соединением с ним через файл hosts нельзя.


Последняя правка: 24.01.2012 Bonn

На главную - Main page >>