Что такое Localhost?

Локальный хост

Компьютерные машины идентифицируются по имени хоста [имя хост-машины] и IP-адресу.

Приведенная ниже диаграмма кратко это иллюстрирует.

уникальные имена

Аналогично, у нас также есть общее название для всех компьютерных систем, которое раньше называлось localhost. Здесь термин «localhost» ассоциируется с контекстом компьютерных сетей. Он играет важную роль в нашей работе как разработчика или системного администратора. Существует множество вариантов использования термина «localhost», например, для тестирования приложений, документирования, тестирования производительности сети и блокировки сайтов.

Давайте углубимся в подробности.

Что такое Localhost

Localhost — это имя хоста, которое относится к компьютерной системе, на которой запущена вызывающая программа. Это означает, что машина будет общаться сама с собой, когда мы вызываем localhost.

Это помогает нам проверять сетевые сервисы на компьютере даже при сбоях сетевого оборудования. При использовании «localhost» доступ к сетевым сервисам осуществляется через логический сетевой интерфейс, называемый loopback. IP-адрес интерфейса loopback — 127.0.0.1. Таким образом, localhost преобразуется в 127.0.0.1 в процессе разрешения имён.

Что такое адрес обратной связи

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

Согласно стандартам IETF для адресации IPv4, весь блок адресов 127.0.0.0/8 выделяется для сетевой обратной связи. По умолчанию интерфейс обратной связи настраивается после установки каждого сервера.

Давайте посмотрим на фрагмент ниже.

 ip a show lo
 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 76238871 bytes 6955286874 (6.9 GB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 76238871 bytes 6955286874 (6.9 GB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
 sudo cat /etc/hosts
 127.0.0.1 localhost 127.0.1.1 sandbox1 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback

Внутреннее устройство обработки пакетов обратной связи

Как правило, пакеты Loopback отличаются от других IP-пакетов своими адресами. Обработка пакетов Loopback с адресом Loopback происходит на канальном уровне стека TCP/IP. Этот трафик проходит внутри самих компьютерных систем. Он не попадает на аппаратные сетевые карты, как другие IP-пакеты. Кроме того, существует правило, согласно которому маршрутизаторы не должны маршрутизировать IP-адрес Loopback.

Например, когда мы запрашиваем адрес 127.0.0.1, запрос не будет перенаправлен в Интернет из-за первого октета (127). В этом случае стек TCP/IP распознает запрос и направляет его обратно на тот же компьютер.

Ниже приведена краткая иллюстрация потока пакетов для локального хоста и других IP-пакетов.

пошаговое руководство по потоку пакетов для локального хоста
 ping -c 4 localhost
 PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.035 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.043 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.040 ms --- localhost ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3075ms rtt min/avg/max/mdev = 0.035/0.039/0.043/0.008 ms
 ping -c 4 google.com
 PING google.com (142.250.71.46) 56(84) bytes of data. 64 bytes from maa03s35-in-f14.1e100.net (142.250.71.46): icmp_seq=1 ttl=120 time=2.14 ms 64 bytes from maa03s35-in-f14.1e100.net (142.250.71.46): icmp_seq=2 ttl=120 time=2.18 ms 64 bytes from maa03s35-in-f14.1e100.net (142.250.71.46): icmp_seq=3 ttl=120 time=2.19 ms 64 bytes from maa03s35-in-f14.1e100.net (142.250.71.46): icmp_seq=4 ttl=120 time=2.20 ms --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 2.147/2.180/2.203/0.051 ms

Тестирование приложений с использованием Localhost

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

Разрабатывать и тестировать код на локальном сервере всегда проще, чем на другом удалённом хосте. Для этого мы сопоставляем наше доменное имя с новым адресом обратной связи (127.0.1.100) в файле /etc/hosts . Записи в /etc/hosts имеют приоритет над DNS.

В приведенном ниже фрагменте кода показан органический ответ ping с локального сервера на удаленный веб-сервер Linuxize. Сопоставление доменов показано во втором фрагменте. При внимательном изучении вывода после сопоставления сегмента IP-адреса 127 с linuxgazette.ru в файле хоста трафик направляется на сетевой интерфейс обратной связи.

 ping -c 4 linuxgazette.ru
 PING linuxgazette.ru (172.67.74.167) 56(84) bytes of data. 64 bytes from 172.67.74.167 (172.67.74.167): icmp_seq=1 ttl=59 time=34.5 ms 64 bytes from 172.67.74.167 (172.67.74.167): icmp_seq=2 ttl=59 time=34.5 ms 64 bytes from 172.67.74.167 (172.67.74.167): icmp_seq=3 ttl=59 time=34.5 ms 64 bytes from 172.67.74.167 (172.67.74.167): icmp_seq=4 ttl=59 time=34.5 ms --- linuxgazette.ru ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 34.521/34.529/34.541/0.227 ms
 sudo cat /etc/hosts
 127.0.0.1 localhost 127.0.1.1 sandbox1 127.0.1.100 linuxgazette.ru # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback
 ping -c 4 linuxgazette.ru
 PING linuxgazette.ru (127.0.1.100) 56(84) bytes of data. 64 bytes from linuxgazette.ru (127.0.1.100): icmp_seq=1 ttl=64 time=0.074 ms 64 bytes from linuxgazette.ru (127.0.1.100): icmp_seq=2 ttl=64 time=0.094 ms 64 bytes from linuxgazette.ru (127.0.1.100): icmp_seq=3 ttl=64 time=0.042 ms 64 bytes from linuxgazette.ru (127.0.1.100): icmp_seq=4 ttl=64 time=0.055 ms --- linuxgazette.ru ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3062ms rtt min/avg/max/mdev = 0.042/0.066/0.094/0.020 ms

Заключение

Localhost — это имя системы по умолчанию, в которой работает наша программа, помогающая нам тестировать приложения и устранять неполадки в сети. Это достигается за счёт механизма локальной петли через сетевой интерфейс loopback. Это позволяет нам тестировать программное обеспечение, не привязываясь к конфигурации сетевого оборудования. Пользователю компьютера важно иметь базовые знания о терминах localhost и loopback.

локальный хост

Об авторах

Шрирам Рамануджам

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *