在 Windows 上进行一些节点开发。节点程序喜欢剔除看起来像这样的 URL http://0.0.0.0:8080
。在 Linux 中(如果我没记错的话),将该 URL 粘贴到浏览器中将会成功。但在 Windows 中,它会出现 404。我想我只需添加:
0.0.0.0 localhost
添加到我的hosts
文件中,但似乎不起作用。例如,我有一个在 上运行的调试器http://localhost:8080/debug?port=5858
。工作正常。但是当我将上述行添加到我的 hosts 文件并尝试访问时,http://0.0.0.0:8080/debug?port=5858
我得到:
Error 108 (net::ERR_ADDRESS_INVALID): Unknown error.
Node-inspector 就是一个很好的例子:
$ node-inspector
info - socket.io started
visit http://0.0.0.0:8080/debug?port=5858 to start debugging
我是否只需要在复制/粘贴时手动编辑该 IP 以使其等于 localhost?或者这是 Linux 和 Windows 之间的奇怪差异?
在 Windows 7 中浏览 URL 时如何实现0.0.0.0
等效localhost
?Chrome 是我的“默认”浏览器。
答案1
因此,这里发生的事情是,节点绑定到0.0.0.0
- 网络语言中表示“所有接口”。这包括本地主机、您拥有的任何实际接口以及您拥有的任何虚拟接口。它本身通常不指向单个接口。(从技术上讲,它指向“此网络上的此主机”,但这充其量是模棱两可的,因为“此网络”没有定义。因此0.0.0.0
通常被理解为指向表示本地计算机在每一个网络)
复制/粘贴时需要手动编辑该 IP 吗?是的。如果 Linux 或 Linux 上的特定浏览器恰好默默地将其更正为127.0.0.1
...太棒了。但正如您所发现的,这不是普遍现象。
答案2
当浏览器扩展检测到页面位于 0.0.0.0 URL 上时,您可以使用浏览器扩展来重定向页面。我使用了 Chrome 的重定向器扩展,并进行了以下设置:
Description: 0.0.0.0 to localhost
Example URL: http://0.0.0.0:4000/webpack-dev-server/
Include pattern: ([a-zA-Z]*)://0.0.0.0:(\d*)/(.*)
Redirect to: $1://localhost:$2/$3
Pattern type: Regular Expression
Example result: http://localhost:4000/webpack-dev-server/