Как работает localhost 127.0.0.1?
Я нашел некоторые статьи, связанные с этим, но их было недостаточно для меня. Я хочу знать, как работает localhost
и почему это одно и то же на многих разных машинах?
Как localhost
host
блокирует доступ к веб-сайту, когда мы используем его в файле host
чтобы заблокировать веб-сайт?
- Получение «SocketException: соединение с помощью peer» в Android
- Mac OS X Mountain Lion не может ping / telnet localhost. Укажите неправильный публичный IP-адрес
- Как получить доступ к веб-сайту, запущенному на локальном хостинге из браузера iPhone
- Как вызвать локальный веб-сервис из мобильного приложения Android
- Почему я не могу посетить http: // localhost через IE?
- Сделать мой локальный хост доступным через DNS, а не через IP-адрес
- Как сопоставить IP-адрес на localhost?
- Должен ли MAMP возвращать :: 1 как IP на localhost?
- создать надежный самоподписанный SSL-сертификат для localhost (для использования с Express / Node)
- Как подключиться к серверу Google App Engine во внутренней сети iMac?
- Как запретить Firefox преобразовывать URL-адреса localhost / * в поисковые запросы?
- Ломать имена локальных узлов в Mac OS X Yosemite
- Почему Chromium не может подключаться к http: // : 8080 / (то есть IPv6 localhost)?
Я не буду говорить о случае Windows здесь, потому что это немного по-другому, но скажем так: во всех * Unix-подобных операционных системах у вас есть два сетевых устройства:
- Устройство петлевой петли
- Устройство Ethernet
Первый – чисто «виртуальный». Это похоже на Ethernet-штекер, который вы не видите. Второй имеет отношение к штепсельной вилке Ethernet на вашем компьютере.
Что делает интерфейс loopback? Каждый трафик, который вы отправляете в loopback, вернется.
Подобно тому, как ваше устройство Ethernet получает IP-адрес (например, 192.168.1.20), устройство loopback также будет иметь 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, http://www.google.com и другие подобные имена. Когда интернет был небольшим (очень маленьким), люди поделились файлом «хозяев» с другими людьми в Интернете, чтобы им не приходилось запоминать номера. Этот файл hosts содержит пары IP-адресов и одно или несколько имен хостов. Когда кто-то пытался получить доступ к хосту по его названию, компьютерное программное обеспечение достаточно знало, чтобы посмотреть его в файле hosts. С тех пор Интернет настолько вырос, что мы теперь используем систему доменных имен (DNS), чтобы разрешать имена на IP-номера в дополнение к использованию старого файла хостов. Большинство компьютеров настроены на поиск имен в файле hosts, а затем в DNS, если это не удается.
Теперь, когда у вас есть фон, вот как это работает (обычно):
Когда вы добавляете эту запись в свой файл hosts, каждый раз, когда ваш компьютер снова пытается найти сайт http://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 при открытии http://www.foo.com.
127.0.0.1 localhost 127.0.0.1 www.foo.com 127.0.0.1 foo.com
Плохая вещь о том, как использовать файл hosts для таких вещей, как только вы добавляете запись в файл hosts, вы берете на себя ответственность за обновление этой информации. Если вы не поместите запись в свой файл hosts, ваш компьютер попытается использовать DNS для поиска IP-адреса, а затем использовать этот IP-адрес для связи с сервером.
Хорошая вещь в том, что если вы никогда не захотите разрешать кому-либо разговаривать с http://www.foo.com только с именем хоста на вашем компьютере, добавление записи в файл вашего хоста может (ключевое слово – может) предотвратить это. Если цель состоит в том, чтобы предотвратить когда-либо доступ к определенному сайту любыми способами (а не только по имени хоста), есть и другие более надежные способы предотвратить это, как правильно, используя брандмауэр.
Localhost или 127.0.0.1 – это просто встроенное имя для вашего локального компьютера.
То есть 127.0.0.1 называется «loopback», потому что это просто указатель, который указывает на ваш компьютер. Это зарезервированный IP-адрес, который также может быть указан как локальный хост по определению.
Цель этого заключается в том, чтобы позволить разговаривать со своим компьютером, отправив сигнал наружу, а затем зациклив обратно, чтобы сигнал также считывался на том же компьютере.
Предположим, что вы используете сервер на своей машине – для доступа к нему вам нужно отправить запрос на сервер (отправить пакет до 127.0.0.1), и ваш сервер должен его прочитать (ваша система отбрасывает пакет на Ваша локальная система на 127.0.0.1, которая затем считывается вашим серверным программным обеспечением).
Во второй части вашего вопроса, если вы помещаете имя хоста веб-сайта в файл hosts с адресом 127.0.0.1, это означает, что при вводе адреса в свой браузер вместо того, чтобы использовать DNS для поиска правильного адреса, он находит его В вашем файле hosts сначала разрешает его на localhost и вместо перехода на адрес веб-сайта просто начинает разговаривать с вашей машиной, что приводит к тому, что веб-сайт не загружается.
Я обнаружил презентацию в Руководстве по TCP / IP, которое показалось мне очень ярким:
Обычно, когда приложение TCP / IP хочет отправить информацию, эта информация перемещается вниз по уровням протокола на IP, где она инкапсулирована в IP-датаграмму . Затем датаграмма переходит на уровень канала передачи данных физической сети устройства для передачи на следующий скачок на пути к IP-адресату.
Тем не менее, один специальный диапазон адресов отложен для функциональности loopback . Это диапазон от 127.0.0.0 до 127.255.255.255. IP-датаграммы, отправленные хостом на 127.x. X. X loopback-адрес не передаются на уровень канала передачи данных для передачи. Вместо этого они «возвращаются» к исходному устройству на уровне IP. По сути, это представляет собой «короткое замыкание» обычного стека протоколов; Данные отправляются тремя уровнями реализации IP-устройства, а затем сразу же получаются им.
Кроме того, Rutgers имеет курс Networking, который включает в себя эту иллюстрацию нормальной связи между ведущими,
И этот один из потоков данных обратной связи: