Файл Hosts — где он находится в Windows, что с ним делать вебмастеру и как удалить из него записи вирусов

8 Июнь, 2013

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня я хочу поговорить о такой довольно-таки простой в своем устройстве вещи, как файл Hosts.

Что примечательно, живет он практически на всех операционных системах (а значит и всех компьютерах пользователей интернета), начиная от Линукса и заканчивая Windows 7. Еще одним отличительным его свойством является то, что он не имеет расширения, но это обусловлено именно тем, что работать он должен в любых ОС, а значит обязан быть универсальным.

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

Когда интернет только появился и был медленным, то многие пользователи прописывали в Hosts наиболее часто посещаемые ими ресурсы, а так же блокировали через него сервера с рекламой, ну, или доступ тем программам, которые они активировали, скажем так, не платя за это разработчикам.

Но даже сейчас этот файл может приносить пользу, в том числе и вебмастерам. Например, при смене хостинга вы вынуждены иногда ждать сутки, прежде через на всех DNS серверах пропишется новый IP адрес вашего сайта. Однако, можно начинать работать и тестировать сайт на новом хостинге сразу же после его размещения там. Как это сделать? Ну, все при помощи того же Hosts.

Кроме этого вообще будет полезно знать где находится файл Hosts, как его найти на разных операционных системах, как его проверить на предмет девственной чистоты от вирусных записей, ну и, наконец, как он должен выглядеть в оригинале.

Что такое Hosts, его содержание и назначение?


По традиции, стоит начать с того, а как же собственно это чудо появилось и сумело поселиться на подавляющем большинстве компьютеров в мире. Ну, тут, как всегда все просто.

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

Однако сетевому оборудованию нужны именно Ip-ишники и ничего другого. Поэтому вручную формировался список соответствия имени хоста и его Ip адреса (тут можно узнать свой IP или какого-либо сайта). Такой список обзывался именем Hosts и рассылался на все узлы локальной сети. Все было замечательно вплоть до того момента, когда использовать такой метод уже стало не возможно из-за огромного числа записей, содержащихся в этом файле. Рассылать его стало проблематично.

В связи с этим решили подойти к этом вопросу иначе, а именно разместить в интернете целую древовидную сеть DNS-серверов (систему доменных имен), которые хранили бы все эти таблицы соответствия и компьютеры пользователей обращались к ближайшему из них с вопросом о том, а какой-же Ip-ишник соответствует домену Вася.ру.

При этом про файл Hosts все благополучно забыли, но он по-прежнему имел место быть во всех операционках, разве что только его содержание было крайне скудным. Обычно там присутствовала и присутствует до сих пор всего лишь одна запись:

127.0.0.1	localhost

По какой-то причине, данный Ip адрес (а точнее диапазон 127.0.0.1 — 127.255.255.255) был выбран для обозначения локального хоста (частного IP), т.е. того самого компьютера, за которым вы сидите (дословно localhost — «этот компьютер»). Но, правда, это все для старичка IPv4 (четвертой версии).

А во входящем сейчас в обиход IPv6 (из-за того, что заложенного в предыдущей версии количества адресов уже не хватает всем) подобная запись будет выглядеть чуток по другому:

::1 localhost

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

На моей старушке Windows Vista файл Хостс выглядит сейчас вот так:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# This HOSTS file created by Dr.Web Anti-rootkit API
	127.0.0.1	localhost
	::1		localhost

Синтаксис записи очень простой — сначала указывается IP адрес, а затем через любое количество пробелов (символов табуляции) прописывается название хоста (компьютера, узла или домена). Для каждой записи подобного рода используется отдельная строка.

Тут встает главный вопрос, а какое сейчас занимает Hosts место в процессе установки соответствия вводимых в браузере доменных имен и тех IP адресов, которые за этими доменами скрываются? Ну, как оказалось, очень даже важное место занимает, а именно первое. Но обо все по порядку.

Итак, вы вводите в адресную строку браузера Урл адрес (про Url читайте тут) или же переходите по ссылке из закладок браузера, или же с какой-либо открытой в нем вебстраницы. В любом случае браузер получает от вас путь до того документа, который вы хотите увидеть.

http://ktonanovenkogo.ru/papka/fail.html

По любому, в Урле будет присутствовать доменное имя сайта, на котором интересующий вас документ лежит (ktonanovenkogo.ru в нашем примере). Однако, этому домену соответствует вполне себе конкретный сервер (может быть виртуальный), где хостится этот самый сайт. И у этого сервера обязательно должен быть IP адрес, чтобы он был виден в сети и к нему могли обращаться.

Ваш браузер не может знать, какой именно IP соответствует доменному имени содержащемуся в Урле (ну, если только вы в этом самом браузере не включили кэширование DNS записей и данный узел был вами ранее посещен). Поэтому он обращается в первую очередь за разъяснениями именно к файлу Hosts на вашем компьютере.

Если там этот домен найден не будет (и соответствующий ему IP), то уже дальше браузер начнет пытать службу кэширования DNS записей из состава Windows. Если раньше вы к этому домену обращались и с тех пор прошло не очень много времени, то DNS-кэш выдаст браузеру этот самый Айпишник. Браузер его получит и откроет затребованный вами документ.

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

И так происходит при абсолютно любом запросе на открытие документа из интернета с вашего компьютера. Улавливаете? Пустой Hosts не создает никаких проблем, а вот если его заполнить, да еще и со злым умыслом, то может получиться так, что вы введете пароль от своего Яндекс кошелька не на официальном сайте этой платежной системы, а на фишинговом ресурсе с аналогичным дизайном (см. что такое фишинг).

Как такое может быть? Ну, от заражения вирусами никто не застрахован (тут я писал про свою вирусную эпопею с сайтами), а вирус может запросто дописать в Хостс IP адрес фишингового ресурса и поставить ему в соответствие доменное имя money.yandex.ru, к примеру. В этом и кроется опасность.

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

Где находится файл Hosts и как удалить из него записи вируса?


С другой стороны удалить внесенные вирусом изменения из файла Host сможет даже абсолютный нуб в компьютерах. Обычно проблема заключается именно в том, чтобы найти, где этот самый файлик находится.

В старых версиях Windows, как, например, XP или 2000, он был открыт для всех желающих и жил в системных папках по следующему адресу:

 Windows\System32\drivers\etc\ 

Вы не поверите, но он живет по этому же адресу и в Windows 7, и в Висте, но там все несколько сложнее, ибо пройдя по пути:

c:\Windows\System32\drivers\

Папки etc вы там не обнаружите. Разработчики посчитали, что обычным смертным этот файл трогать не стоит во избежании проблем.

Однако, файл hosts в windows 7 и vista все же имеет место быть, нужно только искать его, получив права Администратора. Лично я никогда даже не пытался разобраться во всей это ахинеи с правами, но для себя нашел очень простой способ обойти это ограничение.

Итак, заходите в меню кнопки «Пуск» — «Все программы» и находите там папку «Стандартные». Внутри нее живут ярлычки, среди которых несложно увидеть «Блокнот». Щелкаете по нему правой кнопкой мыши и из появившегося контекстного меню выбираете «Запуск от имени Администратора»:

Ну, собственно, полдела сделано. Теперича в блокноте выбираете из верхнего меню пункты «Файл» — «Открыть». В стандартном окне проводника Windows находите искомую папку etc (внутри каталога Windows\System32\drivers\), выбираете в правом нижнем углу из выпадающего списка «Все файлы» и счастливыми глазами наблюдаете появления этого сверхсекретного файла:

Он будет именно без расширения, а всю остальную лабудень, на вроде hosts.txt, очень часто создают вирусы, чтобы отвлечь ваше внимание и в конец запутать. Для настоящего файла они выставляют атрибут «Скрытый», который можно поставить или снять, просто щелкнув по файлу правой кнопкой мыши и выбрав самый нижний пункт «Свойства»:

А т.к. в Windows по умолчанию для зарегистрированных типов файлов расширения не отображаются (вот зачем так сделали — я не понимаю), то пользователь находит hosts.txt не видя ни его расширения, ни того, что в той же папке есть еще один хостс, но он скрыт от его глаз.

Внося изменения в фальшивку он так ничего и не добивается, начинает рвать волосы, заламывать руки и идет в магазин за новым ноутбуком, чтобы, наконец-то, попасть в свой любимый Контакт, который вирус заблокировал на старом компе. Ааа, ужас.

Хотя, конечно же, пользователь может оказаться продвинутым и включить в настройках показ скрытых и системных файлов. В Windows Vista для этого нужно зайти в «Панель управления» — «Свойства папки» — вкладка «Вид» и переместить галочку в строчку «Показывать скрытые папки и файлы». Кстати, и с расположенной выше строчки «Скрыть расширения ...» галочку лучше будет снять:

Есть совсем простой способ открыть этот файл. Достаточно будет нажать на клавиатуре сочетание клавиш Win+R (или выбрать из меню кнопки «Пуск» пункт «Выполнить»), после чего ввести в открывшемся окне следующую строку и нажать Энтер:

notepad  %windir%\system32\drivers\etc\hosts

Но не суть важно. Мы с вами все же нашли, где находится этот секретный (для Windows 7 и vista) файл, и должны его внимательно осмотреть на предмет возможных надругательств. Если первичный осмотр пациента никаких патологий не выявил, то посмотрите на область прокрутки страницы в Блокноте.

Иногда свои записи вирус вносит после нескольких сотен пустых строк, снижая тем самым риск их обнаружения вами. Если полосы прокрутки нет, то все замечательно, а если есть — то воспользуйтесь ей и приведите свой Hosts к тому виду, что у него должен быть с рождения, т.е. достаточно будет наличия в нем всего лишь двух строк (комментарии никому не нужны):

127.0.0.1	localhost
	::1		localhost

Ну, если подмену адресов в этом файле представить довольно просто, например, это может выглядеть так:

127.0.0.1	localhost
	::1		localhost
77.88.21.3 ktonanovenkogo.ru

То как же, в таком случае, осуществляется блокирование определенных сайтов через Хостс? Ну, просто домену, который нужно заблокировать, ставят в соответствие частный IP адрес 127.0.0.1, например, так:

127.0.0.1	localhost
	::1		localhost
127.0.0.1 vk.com
127.0.0.1 odnoklassniki.ru

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

Как я уже упоминал, в стародавние времена, когда интернет у большинства пользователей был еще медленным, для ускорения открывания сайтов прописывали их Айпишники в Hosts. Другое дело, что эти самые ресурсы периодически меняли хостинг и вместе с ним и IP адреса. А пользователь, забыв про то, что он сотворил полгода назад для ускорения интернета, тщетно пытается понять, почему его любимые ресурсы ему не доступны.

Как использовать Хостс при переносе сайта на новый хостинг?


Ну, и напоследок я хотел бы рассказать о том, как с помощью внесения изменений в файл Хостс можно работать с сайтом, переехавшим на новый хостинг еще до того момента, как на всех DNS серверах пропишется новая запись (ставящая в соответствие вашему домену новый Ip адрес). Способ очень простой, но эффективный.

Итак, вы меняете хостера. Естественно, что меняется и IP адрес вашего сайта. Как об этом узнают в интернете? Все правильно, с помощью сети Днс серверов. Кстати, первый и самый важный шаг сделаете вы сами, зайдя в панель управления своего регистратора и прописав там адреса NS серверов вашего нового хостера.

Именно с них новая DNS распространится по всему интернету. Но процесс этот длительный и при самом худшем сценарии развития событий может занять пару суток. На это время сайт должен быть доступен и на новом и на старом хостинге, чтобы пользователи со всего мира не были бы лишены возможности его лицезреть.

Однако, вам самим ведь будет интересно узнать, а как, собственно, ваш ресурс чувствует себя у нового хостера? Проверить работу всех плагинов и других вещей. Неужели придется ждать от нескольких часов до двух суток? Ведь это не выносимо.

Во-первых, можно будет попробовать сбросить DNS-кэш на вашем собственно компьютере, ибо он может мешать вам увидеть свой ресурс на новом хостинге, если внешние ДНС сервера уже получили новую запись. Как это сделать? Опять же все очень просто. Нажимаете на клавиатуре сочетание клавиш Win+R (или выбираете из меню кнопки «Пуск» пункт «Выполнить»), после чего вводите в открывшемся окне:

cmd

Откроется очень страшное окно под название командная строка, куда вам нужно будет вставить эту команду:

ipconfig /flushdns

Обычные кнопки вставки в окне командной строки не работают, поэтому просто щелкните в ней правой кнопкой мыши и выберите пункт «Вставить».

После этого жмите на «Энтер», DNS-кэш очистится на вашем компе и можно пробовать открыть ваш сайт снова. Кстати, кэш ДНС может иметь место быть и в самом браузере, так что очистите его, либо обновите окно, удерживая зажатой кнопку «Шифт» на клавиатуре.

Кстати, если интересно, то можно посмотреть содержимое DNS-кэша, введя в командную строку следующую команду:

ipconfig /displaydns

По-прежнему открывается сайт на старом хостинге? Не беда. Находим описанным чуть выше способом файл Hosts и добавляет в него всего лишь одну строчку:

109.120.169.66 ktonanovenkogo.ru

Где 109.120.169.66 — это будет IP адрес вашего нового хостинга, а дальше будет следовать доменное имя вашего сайта. Все. Пока весь остальной мир любуется вашим ресурсом на старом хостинге, вы имеете возможность исправить возможные косяки на уже перенесенном на новый хостинг движке. Штука замечательная и я ей всегда пользуюсь.

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Еще:

Рубрики :Хостинг и домены

Комментарии и отзывы

Настя

День добрый, Дмитрий! Спасибо за столь информативный пост. Однажды тоже приходилось работать с файлом Ностс. Когда установила сайт на хост, спустя сутки обнаружила, что в моем буке он не открывается ни в одном браузере. Попробовала зайти на свежий сайт со смартфона и, о чудо, он вполне себе доступен. Порописала в хостсе имя и iP-адрес сайта и он тут же стал доступен с моего ноута.

Павел

Недавно пользовался файлом Хостс, провайдер 5 суток обновлял ДНС... надоело ждать, покопался в инете

Надежда Хачатурова

А мне вот не приходилось, зато если придется, знаю теперь, кто поведет меня за руку. Тоже благодарность! Проверить надо бы, конечно, но рисковать влезать в это страшно.

Андрей

Спасибо, хорошая статья — полезная! 🙂

bescom

Спасибо за материал — кое-что я не знал (век живи — век учись!).

А вот кэш ДНС и кэш всех установленных браузеров можно сбросить проще — с помощью программы CCleaner. Быстро, просто, плюс еще много разных полезностей.

Лена

Спасибо огромное! Статья очень понравилась, много полезного вынесла для себя.

И удачи с выходом из под фильтра! Это, конечно, очень не легко, но я верю, что у тебя все получится!!

Сергей

Прочитав вашу хорошую статью, залез в свой host. Вирусы не обнаружил, что обрадовало, зато увидел решетки перед своим IP адресом, выглядит это так:

# 127.0.0.1 localhost

# ::1 localhost

Напишите пожалуйста, надо их удалить или пусть стоят. Если есть какие-то особенности удаления опишите их, пожалуйста, а то я не очень силен в этих знаниях.

Дмитрий

Сергей: обозначение localhost это скорее условность, чем необходимость. В любом случае хуже не будет.

Сергей

Спасибо большое за ответ. Как я понял, можно эти решетки не удалять?

Павел

Сергей, решетки означают комментарии. То есть если они стоят перед текстом, то он никак не действует. Уберите их и условность localhost начнет работать)

Сергей

Павел, я туговат в терминах. Как понять ваше последнее предложение «Уберите их и условность localhost начнет работать»? Это хорошо или плохо, объясните пожалуйста подробней.

Марина

Большое спасибо за статью и за Ваш сайт,постоянно нахожу здесь полезную информацию.По поводу файла host,у меня его нет вообще.Просмотрела всеми способами.Есть только файл lmhosts.sam,где все записи за решетками и файл networks в котором написано

# © Корпорация Майкрософт (Microsoft Corp.), 1993—1999

#

# Этот файл содержит сопоставления сетевых имен/номеров сети для

# локальных сетей. Номера сети задаются в десятичном формате с точками.

#

# Формат:

#

# [псевдонимы...] [#]

#

# Например:

#

# loopback 127

# campus 284.122.107

# london 284.122.108

loopback 127

Может быть этот файл его заменяет?У меня ХР.Дмитрий подскажите может надо создать файл host?Спасибо!

Роман

блин народ подскажите что делать! Всё делал по инструкции(очень хорошо написано)но почему то когда всё сделал и делаю сохранить то у меня пишет что отказано в доступе хотя я делал от имени администратора(всё по инструкции) подскажите что сделать!

Наталья

Здравствуйте! Я тоже не могу найти этот файл Hosts! Заменяет ли его какой-либо другой файл???

Виталий

Добрый день. У меня возник такой вопрос. Из статьи я понял, что если мы указываем в браузере доменное имя, то в таком случае обращение вначале идет к DNS-серверу для получения ip-адреса, а затем переход на требуемую страницу. Будет ли обращение к DNS-серверу при указании в браузере ip-адреса вместо доменного имени?

Елена

Дмитрий! Я никак не могу избавиться от вируса в файле hosts. Что мне сделать?Пожалуйста помогите, а то я не могу заходить в свою почту / только пускает при работе в режиме инкогнито/. Спасибо.

Юрий

Спасибо за полезную статью.

Подскажите, плз., что значит строка в конце файла hosts? Нужно её удалить или оставить?

0.0.0.1 mssplus.mcafee.com

Спасибо.

И ещё один трабл. После исправления система не дала сохранить файл, просит обратиться к админу сети, хотя файл был открыт описанным здесь «самым простым способом», где задание создаётся с правами админа. Как сохранить файл?

Дмитрий

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

# localhost name resolution is handled within DNS itself.

# 127.0.0.1 localhost

# ::1 localhost

поясните: есть ли необходимость снять #, для того чтобы предварительно обращение шло к не просто к списку хештегов и что это даст. А то прочитал все комментарии и ответа на данный вопрос не увидел.

Евгений

Отредактировал файл Hosts, но результатов нет (хотел забанить посещение некоторых сайтов) — открываются, как и раньше. Притом все делал правильно, без ошибок.

Подписаться не комментируя