3

当我使用 node-debug 启动脚本时,它会尝试导航到 URL localhost/debug?port=5858 但没有找到那里提供的页面。

如果我将“localhost”更改为 127.0.0.1 一切正常。

我可以 ping localhost,它正确解析为 127.0.0.1

有任何想法吗?

4

1 回答 1

3

localhost 有一个 IPv6 地址 (::1) 和一个 IPv4 地址 (127.0.0.1)。我的猜测是您的网络服务器仅通过 IPv4 提供服务,而 chrome 更喜欢 IPv6 地址。

$ dscacheutil -q host -a name localhost
name: localhost
ipv6_address: ::1
ipv6_address: fe80:1::1

name: localhost
ip_address: 127.0.0.1
$ netstat -an | grep "[.]80 .*LISTEN"
tcp46      0      0  *.80                   *.*                    LISTEN 

请注意最后一行中的“tcp46”——这意味着 Web 服务器正在侦听 TCP/IPv4 和 TCP/IPv6 连接,如果您运行相同的命令,我怀疑您只会看到“tcp4”。

我对 Node.js 不熟悉,但这篇文章似乎暗示您可以使用server.listen(80, '::'). 或者,您可以为 IPv4 和 IPv6 地址创建单独的侦听器,如此所述。

于 2014-06-20T05:28:10.807 回答