Открыть сервисСервис

Локалхост — петлевой сетевой адрес

Локалхост (англ. localhost, от local host — «локальный хост») — обозначение компьютера или устройства, на котором выполняется текущая программа, обращающаяся к сети. В контексте TCP/IP-сетей localhost — это петлевой интерфейс (loopback), виртуальный сетевой адаптер, который позволяет процессам на одном компьютере обмениваться данными по сетевым протоколам без обращения к физической сети. Стандартное имя хоста для петлевого интерфейса — localhost, а стандартный IP-адрес — 127.0.0.1 в IPv4 и ::1 в IPv6.

Назначение и принцип работы

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

Основные сценарии использования:

  • Разработка и отладка веб-приложений. Веб-сервер (Apache, Nginx, Node.js, Django и другие) запускается на локальном компьютере и обслуживает запросы по адресу http://localhost:8080` и аналогичным. Разработчик тестирует сайт до его публикации в интернете.
  • Межпроцессное взаимодействие. Программы обмениваются данными через TCP- или UDP-сокеты, используя петлевой интерфейс как канал связи.
  • Локальные базы данных. СУБД (PostgreSQL, MySQL, Redis) по умолчанию слушают подключения на localhost, что исключает доступ извне без специальной настройки.
  • Тестирование сетевых сервисов. Проверка работы сетевых протоколов и приложений без реального подключения к сети.

Адрес 127.0.0.1

В IPv4 диапазон 127.0.0.0/8 (адреса от 127.0.0.1 до 127.255.255.255) зарезервирован IANA для петлевых адресов. Любой адрес из этого диапазона указывает на локальную машину. Наиболее распространён — 127.0.0.1, хотя формально все 16 миллионов адресов блока 127.x.x.x ведут себя одинаково.

В IPv6 петлевому интерфейсу соответствует单一 адрес ::1 (0:0:0:0:0:0:0:1).

Имя хоста localhost

Имя localhost традиционно разрешается в IP-адрес 127.0.0.1 через файл hosts — текстовый файл операционной системы, содержащий статические соответствия «имя — адрес»:

  • в Windows: C:\Windows\System32\drivers\etc\hosts
  • в Linux и macOS: /etc/hosts

Стандартная строка в этом файле выглядит как 127.0.0.1 localhost. Ранее разрешением имени занималась служба DNS, но в 2006 году IANA приняла решение закрепить localhost как имя верхнего уровня в корневой зоне DNS (TLD), чтобы гарантировать его неразрешение во внешние адреса. Это исключает конфликт, если домен localhost.com или подобный реально существует.

Петлевой интерфейс в операционных системах

В Linux петлевой интерфейс обозначается как lo и создаётся при загрузке. Проверить его состояние можно командой ip addr show lo. В Windows интерфейс называется «Адаптер локального кольца» (Loopback Pseudo-Interface). В macOS — lo0.

На уровне ядра операционной системы все пакеты, адресованные на 127.0.0.1, обрабатываются без передачи в сетевую подсистему: они сразу возвращаются в стек TCP/IP. Это обеспечивает высокую скорость — пропускная способность петлевого интерфейса ограничена только производительностью процессора и памяти.

Безопасность

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

Для доступа к локальным сервисам извне применяется туннелирование (SSH-туннели, инструменты вроде ngrok) или проброс портов.

localhost и 127.0.0.1 — различия

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

Примечания

В некоторых мобильных системах (Android) обращение к localhost с эмулятора означает сам эмулятор, а для доступа к хост-компьютеру используется специальный адрес 10.0.2.2.

Источники:

  • RFC 3330 — Special-Use IPv4 Addresses
  • RFC 6890 — Special-Purpose IP Address Registries
  • IANA Root Zone Database — .localhost entry
  • «TCP/IP Illustrated, Volume 1» — W. Richard Stevens
  • Документация Microsoft: Loopback Pseudo-Interface
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru