Какое значение имеет файл hosts и используется ли он как ограничение лазейки / обхода?

308
asprin

Я столкнулся с одним вопросом о SO, который инструктирует пользователя возиться с файлом hosts, чтобы обойти «проверку обновлений».

Данное программное обеспечение представляет собой Sublime Text Editor, а OP запрашивает способ отключить проверки обновлений. Решение состоит в том, чтобы добавить строку в файл hosts

127.0.0.1 www.sublimetext.com 

Теперь это приемлемо или нет, это другой вопрос. Мне интересно знать, что именно происходит, если я помещаю это в файл hosts и как это решает проблему OP?

0

2 ответа на вопрос

2
davidgo

Все, что делает файл hosts, - это сопоставление доменных имен с IP-адресами. Когда они отображаются на 127.0.0.1, они отображаются на вашем локальном компьютере.

В этом случае, когда программное обеспечение ищет обновления, оно сверяется с известным доменным именем. При перенаправлении этого доменного имени на локальный компьютер вместо правильного компьютера проверка не будет выполнена, и обновление не может произойти. ВНИМАНИЕ, что просмотр веб-сайта www.sublimetext.com также не удастся.

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

1
Sir Adelaide

Это вопрос о том, как работает интернет.

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

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

Затем он заглянет в файл Hosts, чтобы узнать, записали ли вы IP-адрес этого сайта самостоятельно.

Если вашему ПК не удастся найти правильный IP-адрес локально, он запросит DNS-сервер, указанный в настройках вашей сетевой карты. Обычно параметр говорит «автоматический», что означает, что ваш компьютер просит ваш маршрутизатор выяснить, и если для маршрутизатора заданы настройки по умолчанию, запрос перенаправляется в службу DNS вашего провайдера.

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

Поскольку для поиска DNS-адресов иногда может потребоваться некоторое время, могут возникнуть проблемы с производительностью для ввода данных прямо в файл hosts. А в корпоративных сетях может потребоваться, чтобы определенные внутренние серверы были перечислены вручную. Чаще всего для домашнего пользователя, однако, он привык блокировать доступ к веб-сайтам, перечисляя внутренний IP-адрес локального ПК 127.0.0.1 (localhost). Например, вы можете загрузить большие файлы хостов, содержащие имена серверов рекламы, и затем всякий раз, когда ваш компьютер пытается подключиться к этим серверам для загрузки рекламы, соединение не будет установлено, и вы не увидите рекламу.

В случае вашего примера www.sublimetext.com, когда программное обеспечение пытается получить доступ к веб-сайту, оно направляется на локальный ПК (127.0.0.1). Поскольку он не получит ответ от вашего локального ПК, потому что вы не используете сервер обновления текстовых данных, обновление не будет выполнено.