为什么 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)
答案1
它遵循 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
。