Я понимаю, что 127.0.0.1 указывает на то же самое localhost
, что и 0.0.0.0 (поправьте меня, если я ошибаюсь). Итак, в чем разница между 127.0.0.1 и 0.0.0.0?
networking
ip-address
localhost
ipv4
Сагник Саркар
источник
источник
0.0.0.0
ввод адреса.2130706433
.Ответы:
В чем разница между 127.0.0.1 и 0.0.0.0?
127.0.0.1
адрес обратной связи (также известный как localhost).0.0.0.0
является не маршрутизируемым мета-адресом, используемым для обозначения недопустимой, неизвестной или неприменимой цели (нет конкретного заполнителя адреса).Что такое IP-адрес 127.0.0.1?
Источник: 127.0.0.1 - Каковы его применения и почему это важно?
Специальные адреса
Источник: номера сети
Если это целый класс А, какой смысл в других произвольных значениях для последних трех октетов?
Источник: IP Reserved, Loopback и частные адреса
Для получения дополнительной информации см. Https://askubuntu.com вопрос Что такое устройство обратной связи и как его использовать? и почему IP-адрес обратной связи от 127.0.0.1 до 127.255.255.254? ,
Что такое IP-адрес 0.0.0.0?
Источник: Что означает IP-адрес 0.0.0.0
Источник: 0.0.0.0
DHCP Обнаружение / Запрос
...
...
Источник: понимание и устранение неполадок DHCP в коммутаторе Catalyst или корпоративных сетях.
Маршрут по умолчанию
Источник: Настройка шлюза последней инстанции с использованием IP-команд
источник
Они не то же самое.
127.0.0.1
является частью сети 127/8, которая зарезервирована и указывает на тот же компьютер.0.0.0.0
это специальный IP-адрес, который означает разные вещи в зависимости от контекста.Возможно, вы ошиблись 0.0.0.0 за 127.0.0.1, когда вы смотрите на netstat и видите, что локальный адрес прослушивается как 0.0.0.0, но это другой способ использования 0.0.0.0.
https://en.wikipedia.org/wiki/0.0.0.0
источник
0.0.0.0
иногда может также указывать широковещательную передачу, что означает для всех компьютеров в сети.255.255.255.255
(или, более реалистично, что-то вроде192.168.1.255
локальной сети)A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.
127.0.0.1 является одним из адресов локального компьютера, но любой адрес 127.xyz также является другим адресом компьютера (так называемый «адрес обратной связи»), за исключением 127.0.0.0 (петлевая подсеть) и 127.255.255.255 (широковещательный адрес для петлевая подсеть).
127.xyz означает «здесь».
0.0.0.0 совершенно другой: 0.0.0.0 - это не адрес чего-либо , а джокер, как
*
в оболочке.Вы не можете отправлять данные на 0.0.0.0 или активно открывать TCP-соединение на 0.0.0.0, потому что там ничего нет; 0.0.0.0 даже не является недоступным или не маршрутизируемым адресом, он не имеет смысла в контексте, где ожидается адрес .
Вы можете использовать джокер 0.0.0.0 в тех случаях, когда адрес может быть предоставлен по желанию , что означает, что мне все равно .
Например, когда вы активно открываете TCP-соединение с каким-либо TCP-сервером (TCP-сервер создается с помощью пассивного открытия TCP), вам необходимо указать адрес TCP-сервера (IP и номер порта), и вы можете при желании выбрать местный адрес. (Поскольку ваш сокет не является сокетом сервера, никто не может открыть соединение с ним, и адрес на вашей стороне соединения обычно не очень важен.)
bind
Системный вызов используется для выбора адреса локального сокета TCP. Передаваемые данные наbind
самом деле представляют собой набор ограничений: ограничение на IP-адрес, ограничение на TCP-порт. Обычная текстовая запись - это IP: порт. 0.0.0.0:0 означает, что любой IP и любой порт являются приемлемыми, это нулевое ограничение. 0.0.0.0:20 означает, что локальный порт должен быть 20, любой IP приемлем (0.0.0.0:20 используется соответствующими FTP-серверами для подключения к данным в активном режиме).Подсистема TCP / IP выберет адрес для вашей стороны TCP-соединения, если вы его не выберете, используя таблицу маршрутизации, основываясь на адресе назначения: локальный адрес сокета TCP будет локальным адресом, связанным с соответствующим маршрутом. по адресу назначения.
Ранее я упоминал оболочку «метасимвол»
*
, но сила объединения метасимволов с такими символами, как*foo*
(любое имя файла, содержащее «foo»), не существует с ограничениями IP-адресов, это все или ничего: либо один IP-адрес считается приемлемым или все адреса. Логика не диктует, что так должно быть. Вы можете расширить интерфейс с более богатым языком ограничений.Точность:
Предложение 127.xyz означает «здесь» не означает, что все эти адреса одинаковы. Они фактически представляют разные «местоположения» (адреса сокетов) внутри локального «компьютера» внутри локального стека IP.
Примечание: компьютер с виртуализацией (эмуляция, аппаратная виртуализация, паравиртуализация, все, что вы можете себе представить ...) имеет несколько независимых стеков IP.
источник
-n
или-d
дляnetstat
связанных программ, чтобы показать числовые адреса, а не имена. 127.0.0.1 - это не тот же IP-адрес, что и 127.16.23.42. Таким образом, 127.0.0.1:80 и 127.16.23.42:80 представляют различные адреса конечных точек TCP, веб-сервер по одному адресу не может быть найден по другому адресу.Обычно вы используете bind-адрес 0.0.0.0 для разрешения соединений из внешних сетей и источников. Многие серверы, такие как MySQL, обычно связываются с 127.0.0.1, разрешая только петлевые соединения, требуя от администратора изменить его на 0.0.0.0 для включения внешнего подключения.
источник