Имея две службы, представленные на одном компьютере, мои подключения идут к маршрутизатору и обратно к моей машине, если я использую свой внутренний IPv4-адрес в локальной сети?
Если да, можно ли это предотвратить с помощью 127.0.0.1?
Сервисы ВСЕГДА находятся на одном компьютере, и IPv4-адрес не меняется со временем. Сервисы доступны на машине UNIX или Windows без ведома
Нет, соединения не идут на роутер и обратно.
Если IP-адрес вашей машины 10.1.2.3
, и вы открываете соединение с 10.1.2.3
с этой машины соединение обрабатывается внутри и никогда не покидает вашу машину.
Эса Йокинен прав, что интерфейс обратной петли предназначен именно для этой цели, и его неиспользование имеет некоторые последствия (в основном в отношении безопасности), но для практических целей это не имеет никакого значения, если вы используете 10.1.2.3
или 127.0.0.1
.
Хорошая практика - ограничить вашу службу устройством обратной связи, если вам не нужно, чтобы ваша служба была доступна с других хостов.
Да, это так. Эта функция называется локальный шлейф специально разработан для описываемой вами цели: он позволяет приложениям на одной машине взаимодействовать друг с другом.
Не только 127.0.0.1
но все адреса внутри 127.0.0.0/8
являются Специальный IP-адресes зарезервирован для локальный шлейф. В настоящее время это указано в RFC 8190, 2.2.2, но он восходит как минимум к RFC 1122, 3.2.1.3 с октября 1989 г .:
(грамм) {
127
,<any>
}Внутренний адрес обратной связи хоста. Адреса этой формы НЕ ДОЛЖНЫ появляться вне хоста.
В локальный шлейф обычно реализуется как виртуальный сетевой интерфейс в сетевом программном обеспечении вашей операционной системы (например, lo
, lo0
в UNIX или Loopback Pseudo-Interface 1
в Windows); поэтому он даже не передает пакеты никому контроллер сетевого интерфейса на автомате.
Для полноты картины также есть:
Локальный шлейф для IPv6: ::1/128
(RFC 6890, 2.2.3; RFC 4291, 2.5.3).
Одноадресный адрес
0:0:0:0:0:0:0:1
называется адресом обратной связи. Узел может использовать его для отправки самому себе пакета IPv6. Его нельзя назначать никакому физическому интерфейсу.
Сокеты Unix работает аналогично, но полностью внутри ядра, например, файловая система как пространство имен: два процесса могут взаимодействовать, открывая один и тот же сокет («файл»).
В
AF_UNIX
(также известный какAF_LOCAL
) семейство сокетов используется для эффективного взаимодействия между процессами на одном компьютере. Традиционно сокеты домена UNIX могут быть либо безымянными, либо привязанными к имени пути файловой системы (помеченным как сокеты типа). Linux также поддерживает абстрактное пространство имен, которое не зависит от файловой системы.