В чем разница между 127.0.0.1 и 0.0.0.0?

Я понимаю, что 127.0.0.1 указывает на localhost, а также 0.0.0.0 (исправьте меня, если я ошибаюсь). Итак, какая разница между 127.0.0.1 и 0.0.0.0?

155 голосов | спросил Sagnik Sarkar 2 PM00000040000005431 2015, 16:17:54

4 ответа


161

В чем разница между 127.0.0.1 и 0.0.0.0?

  • 127.0.0.1 - это loopback-адрес (также известный как localhost).

  • 0.0.0.0 - немаршрутизируемый мета-адрес, используемый для обозначения недопустимой, неизвестной или не применимой цели (нет конкретного адресатора).

      

    В контексте записи маршрута это обычно означает маршрут по умолчанию.

         

    В контексте серверов 0.0.0.0 означает «все адреса IPv4 на локальной машине». Если хост имеет два IP-адреса, 192.168.1.1 и 10.1.2.1, а сервер, запущенный на хосте, прослушивает 0.0.0.0, он будет доступен на обоих этих IP-адресах.


Что такое IP-адрес 127.0.0.1?

  

127.0.0.1 - это адрес петлевого интернет-протокола (IP), также называемый «локальным ходом». Адрес используется для установления IP-адреса   подключение к тому же компьютеру или компьютеру, используемому конечным пользователем.

     

Такое же соглашение определено для компьютеров, поддерживающих протокол IPv6   с использованием коннотации :: 1. Установление соединения   использование адреса 127.0.0.1 является наиболее распространенной практикой; Однако,   используя любой IP-адрес в диапазоне от 127. . . * будет функционировать в   такой же или аналогичным образом. Конструкция loopback дает компьютер или   устройство, способное объединить возможности проверки или установления   IP-стек на машине.

Источник: 127.0.0.1 - Что это за его использование и почему это важно?


Специальные адреса

  

Сетевому номеру 127 класса A присваивается "loopback"            функция, то есть датаграмма, отправленная протоколом более высокого уровня            к сети адрес 127 должен зацикливаться внутри хоста. нет            датаграмма, «отправленная» на адрес сети, должна когда-либо появляться            любая сеть в любом месте.

Источник: Сетевые номера


Если это целый класс A, какова точка других произвольных значений для последних трех октетов?

  

Целью цикла loopback является тестирование реализации протокола TCP /IP на хосте. Так как нижние слои закорочены, отправка по петлевому адресу позволяет эффективно тестировать более высокие уровни (IP и выше) без возможности возникновения проблем на нижних уровнях. 127.0.0.1 - это адрес, наиболее часто используемый для целей тестирования.

Источник: Зарезервированный IP-адрес, Loopback и личные адреса

Для получения дополнительной информации см. https://askubuntu.com вопрос Что такое loopback-устройство и как его использовать? и Почему IP-адрес loopback от 127.0.0.1 до 127.255. 255,254? .


Что такое IP-адрес 0.0.0.0?

  

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

     

Значение all-zero имеет особое значение. Таким образом, он «действителен», но   имеет значение, которое может быть неприемлемым (и, следовательно,   действителен) для конкретных обстоятельств. Это в основном «нет»   конкретный адрес "placeholder. . Для таких вещей, как привязка адреса   сетевые соединения, результатом может быть присвоение соответствующих   адрес интерфейса к соединению. Если вы используете его для настройки   интерфейс, он может удалить адресот интерфейса, вместо этого. Это   зависит от контекста использования, чтобы определить, что «нет   адрес "действительно.

     

В контексте записи маршрута обычно используется маршрут по умолчанию .   В результате происходит больше маски адреса, которая выбирает   бит для сравнения. Маска «0.0.0.0» не выбирает бит, поэтому сравнение   всегда будет успешным. Поэтому, когда такой маршрут настроен, существует   всегда где-нибудь для пакетов (если настроено с действительным   назначения).

     

В некоторых случаях просто «0» также будет работать и будет иметь тот же эффект. Но   это не гарантируется. Форма «0.0.0.0» - это стандартный способ сказать   «нет конкретного адреса» (в IPv6, который «:: 0» или просто «::»).

Источник: В чем смысл IP-адреса 0.0.0.0


  

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

     

В контексте серверов 0.0.0.0 означает «все адреса IPv4 на локальной машине». Если хост имеет два IP-адреса, 192.168.1.1 и 10.1.2.1, а сервер, запущенный на хосте, прослушивает 0.0.0.0, он будет доступен на обоих этих IP-адресах.

     

В контексте маршрутизации 0.0.0.0 обычно означает маршрут по умолчанию, т. е. маршрут, который приводит к «остальной» сети, а не где-то в локальной сети.

     

Использование включает:

     
  • Адрес, который хозяин утверждает как свой, когда ему еще не назначен адрес. Например, при отправке исходного DHCPDISCOVER   пакет при использовании DHCP.
  •   
  • Адрес, который хост присваивает себе, когда запрос адреса через DHCP не удался, если это поддерживает IP-стек хоста. Это использование было заменено механизмом APIPA в современных операционных   системы.
  •   
  • Способ указать «любой IPv4-хост вообще». Он используется таким образом при указании маршрута по умолчанию.
  •   
  • Способ явно указать, что цель недоступна. 1
  •   
  • Способ указания «любого IPv4-адреса вообще». Он используется таким образом при настройке серверов (т. Е. При подключении сокетов для прослушивания).   Это известно TCP-программистам как INADDR_ANY. (bind (2) связывается с   адреса, а не интерфейсы.)
  •   

В IPv6 адрес all-zeros записывается как «::».

Источник: 0.0.0.0


Обнаружение /запрос DHCP

  

Когда клиент загружается в первый раз, он, как говорят, находится в   Инициализация состояния и передача сообщения DHCPDISCOVER на его локальном   физическая подсеть по порту пользовательских дейтаграмм (UDP) 67 (BootP   сервер). Поскольку клиент не имеет возможности узнать подсеть, к которой он   принадлежит, DHCPDISCOVER - это все подсети, транслируемые (IP-адрес назначения   адрес 255.255.255.255), с IP-адресом источника 0.0.0.0.   IP-адрес источника 0.0.0.0, поскольку клиент не имеет   настроенный IP-адрес. Если в этой локальной подсети существует DHCP-сервер   и настроен и работает правильно, сервер DHCP услышит   трансляцию и ответить сообщением DHCPOFFER. Если сервер DHCP   не существует в локальной подсети, должно быть реле DHCP /BootP   Агент в этой локальной подсети для перенаправления сообщения DHCPDISCOVER на   подсети, которая содержит DHCP-сервер.

     

Этот ретранслятор может быть либо выделенным узлом (например,   Microsoft Windows Server) или маршрутизатор (например, маршрутизатор Cisco   сконфигурированный с помощью инструкций IP-помощника уровня интерфейса).

...

  

После того, как клиент получитDHCPOFFER, он отвечает сообщением DHCPREQUEST, указывая его намерение принять параметры в DHCPOFFER и переходит в состояние запроса. Клиент может получать несколько сообщений DHCPOFFER, по одному от каждого DHCP-сервера, который получил исходное сообщение DHCPDISCOVER. Клиент выбирает один DHCPOFFER и отвечает только на этот DHCP-сервер, неявно отклоняя все другие сообщения DHCPOFFER. Клиент идентифицирует выбранный сервер, заполнив поле параметра Идентификатор сервера с IP-адресом сервера DHCP. DHCPREQUEST также является широковещательным, поэтому все DHCP-серверы, отправившие DHCPOFFER, будут видеть DHCPREQUEST, и каждый будет знать, был ли его DHCPOFFER принят или отклонен. Любые дополнительные параметры конфигурации, которые требуются клиенту, будут включены в поле параметров сообщения DHCPREQUEST. Даже если клиенту был предложен IP-адрес, он отправит сообщение DHCPREQUEST с IP-адресом источника 0.0.0.0. В настоящее время клиент еще не получил подтверждение о том, что он явно использует IP-адрес.

...

  

Беседа Client-Server для клиента, получающего адрес DHCP, где клиент и сервер DHCP находятся в одной подсети

     

Введите описание изображения здесь>> </p>
</blockquote>

<p> Источник: <a href = Понимание и устранение неполадок DHCP в коммутаторе Catalyst или корпоративных сетях


Маршрут по умолчанию

  

В этом документе объясняется, как настроить маршрут по умолчанию или шлюз   Крайнее средство. Эти IP-команды используются:

     
  • ip default-gateway

  •   
  • ip default-network

  •   
  • и ip route 0.0.0.0 0.0.0.0

  •   

ip route 0.0.0.0 0.0.0.0

     

Создание статического маршрута к сети 0.0.0.0 0.0.0.0 - это еще один способ   установить шлюз последней инстанции на маршрутизаторе. Как и в случае ip   default-network command, используя статический маршрут до 0.0.0.0, не является   в зависимости от любых протоколов маршрутизации. Однако IP-маршрутизация должна быть   включен на маршрутизаторе.

     

Примечание. IGRP не понимает маршрут до 0.0.0.0. Следовательно, это   не может распространять маршруты по умолчанию, созданные с использованием IP-маршрута 0.0.0.0   0.0.0.0. Используйте команду ip default-network, чтобы IGRP распространял маршрут по умолчанию.

Источник: Настройка шлюза последнего курорта с использованием IP-команд

ответил DavidPostill 2 PM00000090000005731 2015, 21:33:57
99

Они не совпадают.

127.0.0.1 является частью сети 127/8, которая зарезервирована и указывает на тот же компьютер.

0.0.0.0 - это специальный IP-адрес, который означает разные вещи в зависимости от контекста.

  

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

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

  

В контексте серверов 0.0.0.0 означает «все адреса IPv4 на   локальный компьютер ". Если хост имеет два IP-адреса, 192.168.1.1 и   10.1.2.1, а сервер, запущенный на хосте, прослушивает 0.0.0.0, он будет доступен на обоих этих IP-адресах.

     

В контексте маршрутизации 0.0.0.0 обычно означает маршрут по умолчанию,   т. е. маршрут, который приводит к «остальной» сети, а не к   где-то в локальной сети.

https://en.wikipedia.org/wiki/0.0.0.0

ответил Cristian Dobre 2 PM00000040000004731 2015, 16:55:47
11

127.0.0.1 один из адресов локального компьютера, но любой адрес 127.xyz также является другим адресом компьютера (так называемый «loopback address»), за исключением 127.0.0.0 (loopback subnet) и 127.255.255.255 (широковещательный адрес для подсети loopback).

127.x.y.z означает «здесь».

0.0.0.0 совершенно разные: 0.0.0.0 не является адресом чего-либо , это джокер, как * в оболочке.

Вы не можете отправить данные на 0.0.0.0 или активно открыть TCP-соединение с 0.0.0.0, потому что там ничего нет; 0.0.0.0 даже не является недоступным или немаршрутизируемым адресом, он не имеет смысла в контексте ожидаемого адреса .

Вы можете использовать joker 0.0.0.0 в контекстах, где адрес может быть optionnaly , что означает Мне все равно .

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

Системный вызов bind используется для выбора локального адреса сокета TCP. Данные, переданные в bind, действительно представляют собой набор ограничений: ограничение на IP-адрес, ограничение на TCP-порт. Обычная текстовая нотация - IP: порт. 0.0.0.0:09 означает, что любой IP-порт является приемлемым, это нулевое ограничение. 0.0.0.0:20 означает, что локальный порт должен быть 20, любой IP-адрес приемлем (0.0.0.0:20 используется для согласования FTP-серверов для подключения данных в активном режиме).

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

Ранее я упоминал оболочку «метасимвол» *, но мощь комбинирования метасимволов с такими символами, как *foo* (любое имя файла, содержащее «foo ") не существует с ограничениями IP-адресов, это все или ничего: либо один IP-адрес считается приемлемым, либо все адреса. Логика not диктует, что это должно быть так. Вы можете расширить интерфейс с помощью более богатого языка ограничений.

Точность:

Предложение 127.x.y.z означает «здесь» не означает, что все эти адреса одинаковы. Они представляют разные «местоположения» (адреса сокетов) внутри локального «компьютера» внутри локального IP-стека.

Примечание: компьютер с виртуализацией (эмуляция, аппаратная виртуализация, паравиртуализация, что бы вы ни думали ...) имеет несколько независимых стеков IP.

ответил curiousguy 3 PM00000070000005631 2015, 19:38:56
4

Обычно вы используете bind-адрес 0.0.0.0, чтобы разрешать подключения из внешних сетей и источников. Многие серверы, такие как MySQL, обычно привязываются к 127.0.0.1, разрешая только соединения с обратной связью, требуя от администратора изменить его на 0.0.0.0, чтобы включить внешнее подключение.

ответил Marek Bejda 3 AM00000080000004431 2015, 08:55:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132