Ruby 中间人服务器在Windows 0.0.0.0:4567上不工作

Ruby 中间人服务器在Windows 0.0.0.0:4567上不工作,ruby,windows,middleman,Ruby,Windows,Middleman,我想我会把这个问题贴上去,因为关于在windows上使用middleman的信息很少(特别是我在使用windows 7),而且我在网上找不到解决这个问题的方法,但我自己也能解决 启动中间人服务器并接收以下信息时: 中间人正站在门口守望http://0.0.0.0:4567 我无法查看网页,简单地说,什么都没有。我关闭了防火墙,消除了它的潜在问题,并尝试在不同的端口上运行服务器。我仍然一无所获。在这种情况下,答案极其简单 由于某些原因,windows使用localhost而不是0.0.0.0。因此

我想我会把这个问题贴上去,因为关于在windows上使用middleman的信息很少(特别是我在使用windows 7),而且我在网上找不到解决这个问题的方法,但我自己也能解决

启动中间人服务器并接收以下信息时:

中间人正站在门口守望http://0.0.0.0:4567


我无法查看网页,简单地说,什么都没有。我关闭了防火墙,消除了它的潜在问题,并尝试在不同的端口上运行服务器。我仍然一无所获。

在这种情况下,答案极其简单

由于某些原因,windows使用localhost而不是0.0.0.0。因此,虽然它说在0.0.0.0:4567时是“站着看”,但实际上是在localhost:4567时是“站着看”。您应该能够导航到此页面并查看您的中间人版本。

对于我来说,使用“localhost”可以使用“127.0.0.1:4567”,但由于某些原因,它不起作用:) 请记住,如果需要,可以随时使用port参数更改端口号,如下所示
“middleman--port=12345”

0.0.0
仅代表“所有IPv4 IP”,在这种情况下,它意味着middleman服务器在所有本地IP上的端口4567上侦听

需要注意的是,0.0.0.0不是您可以在浏览器中使用的实际IP。相反,您可以导航到任何实际分配的本地IP,例如127.0.0.1,它是您系统上的本地IP


仅使用
localhost
不起作用,因为Windows默认启用了IPv6(优先于IPv4),因此将
localhost
映射到
::1
,即本地IPv6 IP。由于Middleman只绑定到本地IPv4 IP,因此它不会在
::1

上应答消息令人困惑,这就是它将在中更改的原因

尝试访问
localhost:4567
127.0.0.1:4567


一般来说,你也可以考虑在VM中运行Linux,在中间使用中间人。

我在Mac(OS 10.10)上遇到了同样的问题,这就起了作用。谢谢