为什么本地主机不能在chrome(OSX)中路由到127.0.0.1?

当我使用node-debug启动脚本时,它将尝试导航到URL localhost / debug?port = 5858,但是没有find在那里服务的页面。

如果我更改“本地主机”为127.0.0.1一切工作正常。

我可以ping本地主机,它适当地parsing为127.0.0.1

有任何想法吗?

localhost有一个IPv6地址(:: 1)以及一个IPv4地址(127.0.0.1)。 我的猜测是你的web服务器只能通过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,但是这个post似乎暗示你可以使用server.listen(80, '::')来监听两个本地主机地址。 或者,您可以为IPv4和IPv6地址创build单独的侦听器,如此处所述。