Я нашел несколько статей, связанных с этим, но их было недостаточно для меня. Я хочу знать, как localhost
работает и почему он одинаков на разных машинах?
Как localhost
блокирует доступ к сайту, когда мы используем его в host
файле для блокировки сайта?
windows-7
localhost
hosts-file
avirk
источник
источник
Ответы:
Я не буду говорить о случае Windows здесь, потому что он немного отличается, но скажем так: в каждой * Unix-подобной операционной системе у вас есть два сетевых устройства:
Первый из них чисто «виртуальный». Это как разъем Ethernet, который вы не видите. Второй связан с разъемом Ethernet на вашем компьютере.
Что делает петлевой интерфейс? Каждый трафик, который вы отправляете в loopback, будет возвращаться.
Подобно тому, как ваше устройство Ethernet получает IP-адрес (например, 192.168.1.20), у петлевого устройства также будет IP-адрес, а именно 127.0.0.1. Чтобы сделать это проще, вы также можете получить к нему доступ
localhost
.Если вы посмотрите на типичный Unix
/etc/hosts
файл , вы увидите, что 127.0.0.1 сопоставлен с «localhost». Таким образом, всякий раз, когда вы набираете «localhost», ваш компьютер будет знать, чтобы позвонить 127.0.0.1.И это причина, по которой вы можете «блокировать» приложения. Допустим, вы не хотите, чтобы ваш компьютер отправлял данные в Microsoft. Тогда вы можете просто перенаправить каждый запрос
microsoft.com
на 127.0.0.1. Каждая попытка связатьсяmicrosoft.com
приведет к провалу.* каждая система на самом деле имеет аппаратный порт Ethernet
источник
IP-адреса попадают в одну из четырех основных категорий.
По соглашению 127.0.0.1 является одним из тех адресов, которые относятся к последней из этих категорий.
Как люди, мы не очень хорошо запоминаем номера IP, но у нас нет проблем с запоминанием таких имен, как superuser.com, www.google.com и других похожих имен. Когда Интернет был маленьким (очень маленьким), люди делились файлом «hosts» с другими людьми в Интернете, чтобы им не приходилось запоминать цифры. Этот файл hosts содержит пары IP-адресов и одно или несколько имен хостов. Когда кто-то пытался получить доступ к хосту по его имени, компьютерная программа знала достаточно, чтобы найти его в файле hosts. С тех пор Интернет вырос настолько, что теперь мы используем систему доменных имен (DNS) для преобразования имен в IP-номера в дополнение к файлу хостов старого стиля. Большинство компьютеров настроены на поиск имен в файле hosts, а затем в DNS, если это не удается.
Теперь, когда у вас есть фон, вот как это работает (обычно):
Когда вы добавляете эту запись в ваш файл hosts, каждый раз, когда ваш компьютер пытается найти www.foo.com, он попытается достичь этого сайта по IP-адресу 127.0.0.1, потому что вы сказали, что это Интернет-адрес для www. foo.com. Помните, что 127.0.0.1 позволит компьютеру общаться с самим собой, поэтому при попытке перейти к 127.0.0.1 в вашем браузере будет пытаться связаться с веб-сервером на вашем компьютере. Если бы вы поместили 2.3.4.5 вместо 127.0.0.1, он попытался бы связаться с компьютером по адресу 2.3.4.5 при открытии www.foo.com.
Плохая вещь в использовании файла hosts для таких вещей - когда вы добавляете запись в файл hosts, вы берете на себя ответственность за актуальность этой информации. Если вы не поместите запись в файл hosts, ваш компьютер попытается использовать DNS для поиска IP-адреса, а затем использовать этот IP-адрес для связи с сервером.
Хорошо, что если вы не хотите, чтобы кто-либо говорил с www.foo.com только по имени хоста на вашем компьютере, добавление записи в файл хостов может (ключевое слово - может) предотвратить это. Если цель состоит в том, чтобы предотвратить когда-либо доступ к определенному сайту любыми способами (не только по имени хоста), существуют другие более эффективные и надежные способы предотвращения этого, как при использовании брандмауэра.
источник
Localhost или 127.0.0.1 - это просто встроенное имя для вашего локального компьютера.
Таким образом, 127.0.0.1 называется «обратной связью», потому что это просто указатель, который указывает на вашу машину. Это зарезервированный IP-адрес, который также может быть записан как localhost по определению.
Цель этого состоит в том, чтобы позволить человеку общаться с компьютером, посылая сигнал наружу, а затем зацикливая его так, чтобы сигнал также считывался вашим компьютером.
Допустим, на вашем компьютере запущен сервер - для доступа к нему вы должны отправить запрос на сервер (отправить пакет на 127.0.0.1), а ваш сервер должен прочитать его (ваша система отправляет пакет обратно ваша локальная система на 127.0.0.1, которая затем читается программным обеспечением вашего сервера).
источник
Я обнаружил презентацию в Руководстве по TCP / IP, которая показалась мне очень яркой:
Кроме того, у Рутгерса есть сетевой курс, который включает в себя эту иллюстрацию нормального взаимодействия между хостами,
и это один из петли потока данных:
источник
Что касается второй части вашего вопроса, если вы поместите имя хоста веб-сайта в файл hosts с адресом 127.0.0.1, это означает, что когда вы вводите адрес в браузере вместо использования DNS, чтобы найти правильный адрес, он находит его. в вашем файле hosts сначала разрешается его в localhost, и вместо того, чтобы переходить по адресу сайта, он просто начинает говорить с вашей машиной, что приводит к сбою загрузки сайта.
источник