Почему 0.0.0.0 разрешается в устройство обратной петли?
$ curl --verbose 0.0.0.0
* Rebuilt URL to: 0.0.0.0/
* Hostname was NOT found in DNS cache
* Trying 0.0.0.0...
* Connected to 0.0.0.0 (127.0.0.1) port 80 (#0)
Это следует из требования RFC. RFC 5735 говорит:
Глобальные и другие специализированные адресные блоки
0.0.0.0/8 - Адреса в этом блоке относятся к исходным хостам в «этой» сети. Адрес 0.0.0.0/32 может использоваться как исходный адрес для этого хоста в этой сети.; другие адреса в пределах 0.0.0.0/8 могут использоваться для ссылки на указанные хосты в этой сети
Учитывая это, единственное рациональное решение 0.0.0.0
как пункт назначения - относиться к нему так же. Вы не можете направить его куда-либо еще, потому что возвратные пакеты нарушили бы RFC; нельзя сказать, что он недействителен, потому что он не используется в качестве источника; единственная разумная вещь, которую можно сделать с ним, когда он используется в качестве пункта назначения, - это сопоставить его с localhost
также.
Один из моих старых коллег использовал telnet 0 22
как реальная экономия времени для telnet localhost 22
.