Lan хост что это
Перейти к содержимому

Lan хост что это

  • автор:

Что такое localhost и как его используют в разработке

localhost

Сегодня речь пойдет о localhost . Вы узнаете, где используется этот параметр, что он обозначает, как его правильно применять и какие с ним могут возникать проблемы.

Что такое локальный хост?

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

Localhost или локальный хост — это зарезервированное имя для частных IP-адресов. В случае, когда сеть представлена одним хостом, этот адрес определен как 127.0.0.1 . Для шестой версии протокола (IPv6) с доменным именем локальной машины связан адрес ::1/128 (0:0:0:0:0:0:0:1) . Он привязывается к сетевому интерфейсу, называемому loopback, в сетевом протоколе TCP/IP.

Несмотря на то, что localhost и 127.0.0.1 принято употреблять как синонимы — эти понятия не тождественны. Хотя функционально localhost и 127.0.0.1 идентичны, первое — это метка, второе — точное указание адреса.

Понимание этого позволит вам избежать проблем с конфигурацией приложений, о чем пойдет речь далее в этой статье. Доменное имя localhost легче произносить и запоминать, иногда ему может соответствовать localhost.localdomain .

Внутренняя обработка пакетов Loopback

Данные, отправляемые через логический интерфейс loopback , не похожи на стандартные пакеты. Они не проходят через аппаратную часть, на маршрутизаторах используется правило, по которому устройства не должны маршрутизировать loopback IP-адрес.

Так, если данные поступят на 127.0.0.1 , с первым октетом стек TCP/IP идентифицирует их и пришлет назад на локальный компьютер.

Получается «петля» цифрового потока данных. На системах Unix сетевой интерфейс loopback называется lo или lo0 .

Что такое адрес обратной петли

Адрес обратной петли — это адрес, который используется петлевыми интерфейсами.

Благодаря технологии loopback на локальном ПК можно разворачивать сервер, а также запускать веб-приложения, имитируя работу в реальных условиях. Так, если на компьютере развернут и запущен веб-сервер, переход в браузере по ссылкам http://127.0.0.1/ или http://localhost/ откроет страницу сайта данного компьютера.

Посредством loopback (через «прозвон» тестовыми пакетами утилитой ping) можно выполнять тестирование функций IP-стека.

Маршрутизация через hosts

Посмотреть соответствие localhost и IP-адреса можно через системный файл hosts, который присутствует во всех системах на базе Windows и Unix.

Перед тем, как выполнить резолвинг, обратившись к системе имен DNS, система проверяет настройки файла, ассоциируя указанные в нем адреса.

На платформе Linux вы его увидите в каталоге /etc/hosts , в Windows ОС он расположен по пути c:\Windows\System32\drivers\etc\hosts .

Файл hosts применялся еще до появления DNS. На практике оказалось, что подобная система плохо совместима с масштабированием сети. Когда число одновременно работающих адресов стало слишко большим, принципы адресации пришлось пересмотреть. Так появилась DNS – технология, поддерживающая большее число участников сети.

Если посмотреть содержимое файла, можно увидеть следующее:

Данные записи говорят о том, что на локальном компьютере localhost нужно подключаться к 127.0.0.1 или :: 1 (оба адреса ассоциированы с локальным компьютером).

Для чего используется 127.0.0.1

При использовании адреса 127.0.0.1 физическое оборудование (модем, сетевой адаптер, маршрутизатор и пр.) не требуется, т.к. интерфейс реализуется на уровне драйвера в ядре используемой ОС.

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

В некоторых многопользовательских играх (например, Minecraft) localhost можно использовать, чтобы разместить сервер на собственном ПК.

minecraft

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

Network Troubleshooting Basics: The Ping Command - gHacks Tech News

Как получить доступ к 127.0.0.1

Получить доступ к 127.0.0.1 очень просто. Для этого:

    откройте браузер и введите в адресную строку 127.0.0.1 ;

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

Бывает, что при подключении к 127.0.0.1 могут возникать проблемы.

Опытные пользователи делятся советами, как этого избежать:

  • отключите Skype (ничего не нужно будет менять в настройках);
  • запустите XAMPP от имени администратора;
  • установите сервисы Apache и MySQL нажатием на красные крестики в столбце Service;
  • запустите Apache и MySQL.

Все должно сработать! Без проблем заходим как по 127.0.0.1, так и по localhost.

Использование тестов для ПО через Localhost

Во время тестирования проверяется скорость отклика соответствующего сервиса, который задействует сетевой интерфейс.

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

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

Чем localhost отличается от 127.0.0.1?

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

Давайте разберемся, почему предпочтительнее использовать 127.0.0.1 , а не localhost.

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

Соответственно, когда мы используем имя домена, то он преобразуется в IP-адрес (процесс называется резолвинг). Эта процедура задается командой resolving nslookup и возможна благодаря распределенной системе для получения информации о доменах (DNS).

При работе с локальным ПК применяется метка, доменное имя хоста — localhost . Это доменное имя также резолвится в какой-то IP-адрес.

Существуют специальные стандарты, которые описывают его и закрепляет его как домен верхнего уровня (вы можете написать, например – мой_сайт_про_кошек.localhost ).

Когда запускается какой-то сервис (Nginx, база данных — PostgreSQL, mySQL и др.), он слушает по определенному порту IP-адрес (эта пара называется сокет). В спецификации RFC6761 можно увидеть описание того, в какой IP-адрес должен преобразоваться localhost — это loopback-адрес.

Напомним, loopback-интерфейс для компьютера — это виртуальный интерфейс, реализованный на уровне TCP-стека, благодаря которому операционная система понимает, что все пакеты остаются внутри (отсюда и название: loop — петля, back — возврат).

В спецификации RFC5735, где описан loopback-интерфейс, говорится, что это — сеть с диапазоном 127.0.0.0/8 . То есть не один IP-адрес 127.0.0.1 , а миллионы хостов.

Например, адрес 127.1.1.1 — тоже может использоваться loopback . Отсюда следует важная проблема применения localhost в конфигурациях — мы имеем неоднозначность того, в какой адрес будет преобразован localhost .

Действительно, на большей части систем он преобразуется в 127.0.0.1 , но это лишь один из миллионов адресов, ничего вам не мешает использовать, скажем, 127.10.10.10 .

Для софта, который вы используете, такая неоднозначность может представлять проблему. Приложению, которое пытается сделать резолвинг, стандарт предписывает либо обращаться к DNS текущей ОС, либо как-то самому решать этот вопрос.

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

Поэтому в общих случаях при задании конфигурации не рекомендуется использовать доменное имя localhost , а вместо этого следует указывать IP-адрес 127.0.0.1 . В этом случае у вас не будет проблем с коммутацией на сервер при резолвинге, вы всегда будете уверены в том, что запрос направляется по правильному маршруту.

Таблица сетевых адресов и типов использования

Выделяемые IP-адреса Область применения
0.0.0.0/8 Текущая сеть
10.0.0.0/8 Сети для частного использования
14.0.0.0/8 Сеть общедоступных данных
24.0.0.0/8 Сети кабельного телевидения
39.0.0.0/8 Зарезервированный диапазон, подлежит распределению
127.0.0.0/8 Для пакетов-петель (интерфейс Loopback)
128.0.0.0/16 Зарезервировано, подлежит распределению
169.254.0.0/16 Для коммуникаций в пределах одного сегмента местной сети или магистральной линии.
172.16.0.0/12 Частные сети
191.255.0.0/16 Зарезервировано, подлежит распределению
192.0.0.0/24 Зарезервировано, но подлежит распределению
192.0.2.0/2 Тестовая сеть
192.88.99.0/24 6to4 Ретрансляция Anycast
192.168.0.0/16 Сети для частного использования
198.18.0.0/15 Тестирование устройств сетевого соединения
223.255.255.0/24 Зарезервировано, подлежит распределению
224.0.0.0/4 Многоадресная рассылка, обычно используемая в многопользовательских симуляциях и играх, а также при распространении видео.
240.0.0.0/4 Зарезервировано для использования в будущем

Чем отличаются 0.0.0.0 и 127.0.0.1?

Если клиентские устройства (лэптоп, планшет, смартфон и пр.) не подключены к сети с протоколом TCP/IP их сетевой идентификатор показывается – 0.0.0.0 .

IP-адрес 0.0.0.0 — это один из идентификаторов специального назначения. Он выступает в качестве адреса-заполнителя, определяет маршрут по умолчанию.

Адрес 0.0.0.0 подразумевает все адреса IPv4 на локальном компьютере и может означать недействительный, неизвестный или неприменимый хост. В случае когда хост имеет два IP-адреса, 192.168.1.1 и 10.1.2.1 , а сервер, работающий на узле, слушает 0.0.0.0 , он будет доступен как для первого, так и для второго IP-адреса. What

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

Если рабочая станция в целом сконфигурирована для работы в сети TCP/IP корректно, но, при этом, в заголовке протокола значится 0.0.0.0 , для устранения этой проблемы и получения действительного адреса можно выполнить следующие действия:

  • Для конфигурации, где задействуется динамическое назначение адресов следует освободить и перезапросить IP-адрес компьютера. Могут иметь место сбои с назначением DHCP — случайными или постоянными.
  • Если ошибки повторяются, устраните неполадки в настройках DHCP-сервера. Причиной сбоя может быть отсутствие доступных адресов в пуле DHCP.
  • Для сетей, требующих статической IP-адресации, нужно определить действительный IP-адрес на компьютере.

Заключение

Надеемся, теперь вы получили четкое представление о том, что такое localhost и loopback , а также поняли, почему нужно стараться использовать IP адрес 127.0.0.1 вместо доменного имени.

Использование localhost дает возможность веб-разработчикам тестировать клиент-серверную архитектуру на локальном ПК, без подключения к интернету, а также выявлять неполадки в сети и настраивать различные сервисы.

Для закрепления полученных знаний рекомендуем посмотреть видео на английском, в котором рассказывается о том, что такое localhost , что означает адрес 127.0.0.1 , а здесь также найдете теорию про loopback в TCP/IP:

Можно на пальцах объяснить, про суть localhost и порты?

Объясните, пожалуйста, простым языком.
Что такое localhost в адресной строке?
Почему бывают разные порты?
Где находится этот localhost, в каких директориях?

  • Вопрос задан более трёх лет назад
  • 25560 просмотров

Оценить 2 комментария

  • Facebook
  • Вконтакте
  • Twitter

pi314

Если человек, не знакомый с арифметикой захочет понять, что означает «два плюс три равно пять», ему недостаточно объяснить, что такое «два», или что такое «плюс»!

Так же и тут. Для понимания, что такое localhost, сначала нужно понять, что такое хост вообще, что такое сеть, что такое имя хоста, что такое сервер, как это все связано с адресами и номерами портов, а те — с, собственно, одним конкретным компом (который, в зависимости от контекста, могут называть и «хостом», и «сервером», и «localhost»). Так что, чтоб можно было объяснить на пальцах, уточните, с какого места, собственно, непонятно.

bagerman

pi314

Если человек, не знакомый с арифметикой захочет понять, что означает «два плюс три равно пять», ему недостаточно объяснить, что такое «два», или что такое «плюс»! Так же и тут. Для понимания, что такое localhost, сначала нужно понять, что такое хост вообще, что такое сеть, что такое имя хоста, что такое сервер, как это все связано с адресами и номерами портов, а те — с, собственно, одним конкретным компом (который, в зависимости от контекста, могут называть и «хостом», и «сервером», и «localhost»). Так что, на всякий случай:

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

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

Сервер — это программа, отвечающая на запросы из сети. Комп, на котором она выполняется, также называют «сервером». Причем, даже если выполнение программы приостановлено (например, проводят профилактику или программа-сервер упала), этот комп все равно будут называть «сервером», ибо он предназначен, в основном, для выполнения этой программы.

На одном компе (=хосте, сервере) может одновременно выполняться несколько разных программ-серверов. Для того, чтоб обратиться к конкретной из них (адрес-то у всех один и тот же!), в протоколе TCP/IP используются разные номера портов.

Если на компе запущен, например, HTTP сервер (= Webserver, например, Nginx или Apache), он «слушает» порт 80, а если не запущен, порт 80 никто не слушает, и если обратиться к такому хосту (= серверу, компу) по его адресу в порт 80, никакого ответа не придет. хотя сам хост и будет доступен.

Для разных общеизвестных типов программ-серверов (в этом случае также говорят о «сервисах» или же «протоколах», что в данном контексте практически одно и то же) принято использовать общеизвестные номера портов, а для наиболее распространенных (как тот же HTTP) можно даже не указывать номер порта при обращении, как мы обычно и делаем в строке броузера, т.к. клиент автоматически использует номер порта по умолчанию, в данном случае 80. Но, в принципе, любой сервис можно (переконфигурировав) использовать на любом порту. если, конечно, в этом есть смысл. Единственно, что нельзя — одновременно использовать разные серверы на одном порту.

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

localhost — «общеизвестное» имя компа для самого себя и ему соответствует IP адрес 127.0.0.1. Это — общепринятая договоренность, которую просто нужно знать. Если говорят «установить сервер на localhost», это означает «установить на тот самый комп, с которого и обращаться к этому серверу».

Что такое локальный хост?

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

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

Хост — это у нас домен сайта (например, abc.ru), либо его IP-адрес 4 числа от 0 до 255 каждое.

Если попробовать перейти на локальный хост в браузерах, которые установлены на разных компьютерах, то везде у вас может быть разный результат.

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

Дело в том, что localhost — это так называемый локальный хост. Можно сказать, что обращаясь к localhost вы обращаетесь к тому же самому компьютеру, на котором сейчас работаете.

В Интернет специально сделано так, что ip-адрес 127.0.0.1 нигде не зарегистрирован и такого сайта в Сети быть не может. Есть специальный диапазон IP-адресов, которые начинаются на 127. , которых в сети Интернет вообще не существует. Это специальные адреса, которые созданы для создания локальных сетей.

localhost — это просто альтернативный способ обратиться к адресу 127.0.0.1. Можно сказать, что это его синоним.

Вот диапазон IP-адресов, которые предназначены для создания локальных сетей.

Вот такое понятие localhost. Надеюсь, что вам стало более понятно что этот такое и зачем это нужно. И если вы теперь столкнетесь с этим понятием вам будет понятнее что это такое и зачем это нужно.

Что такое Localhost

what is localhost

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

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

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

localhost

Давайте разберемся в этом подробнее.

Что такое локальный хост?

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

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

Таким образом, localhost разрешается в 127.0.0.1 как часть разрешения имен.

Что такое адрес обратной петли?

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

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

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

Внутренняя обработка пакетов Loopback

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

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

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

network packet flow

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

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

В приведенном ниже фрагменте показан органичный ответ ping с локального сервера на удаленный веб-сервер LinuxCool. Сопоставление доменов показано во втором фрагменте.

Когда мы внимательно проверяем результат после сопоставления IP-адреса сегмента 127 с linuxcool.net в файле хоста, трафик направляется на сетевой интерфейс loopback.

Заключение

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

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

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