伟大的谜团。我有一个在 OS X El Capitan 上运行的 Express/Node (v4.2.2) JS 应用程序。该应用程序在端口 4444 上运行。如果我运行该应用程序,我可以使用以下命令获得正确的响应:
curl localhost:4444
-> 有效
curl [::1]:4444
-> 有效
curl api.q.com:4444
-> 有效
但是,我有一个问题:
curl 127.0.0.1:4444
-> 不起作用;响应 curl: (52) 来自服务器的空回复
127.0.0.1:4444
在所有浏览器中也失败。更令人惊讶的是,api.q.com:4444
适用于所有浏览器除了 Chrome 。
我的/etc/hosts
文件:
127.0.0.1 localhost web.q.com api.q.com qrm.q.com fhr.q.com
::1 localhost
fe80::1%lo0 localhost
我已尝试将我的 /etc/hosts
文件重置回默认值并刷新我的 DNS 缓存。我有一种感觉,可能是应用程序的问题,但我不确定原因是什么。有什么建议吗?
最佳答案
事实证明,这与我在 Virtual Box 中设置的 Linux VM 有关。我的 /etc/hosts
文件在该虚拟机上是相同的(也许这就是问题所在?)。
我禁用了虚拟机,一切又恢复正常了。我不知道原因是什么,但我要结束这个问题。如果其他人遇到此问题,我只能建议查看您可能在本地运行的任何虚拟机。再次感谢!
关于node.js - 本地主机、[::1] 和 etc/hosts 中的映射主机可以工作,但 127.0.0.1 不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134316/