当我使用 node-debug 启动脚本时,它尝试导航到 URL localhost/debug?port=5858,但找不到那里提供的页面。
如果我将“localhost”更改为 127.0.0.1 一切正常。
我可以 ping localhost 并且它正确解析为 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 不熟悉,但是这个帖子 http://grokbase.com/t/gg/nodejs/12avah16tt/binding-to-ipv4-ipv6似乎意味着您可以使用以下方式监听两个本地主机地址server.listen(80, '::')
。或者,您可以为 IPv4 和 IPv6 地址创建单独的侦听器,如下所述here http://code.danyork.com/2011/01/20/testing-node-js-with-ipv6-first-step-does-it-work/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)