最佳答案
我在我的mac上使用Jekyll和Vagrant。我发现Jekyll server将绑定到0.0.0.0:4000而不是127.0.0.1:4000。同时,gem server将默认绑定到此地址。我仍然可以通过http://localhost:port访问它。但是对于Jekyll, 似乎默认设置(例如0.0.0.0:4000)需要Internet访问。我不能运行Jekyll server没有互联网。是一个小错误吗?
我也使用Vagrant。我在Vagrantfile中设置了端口转发(8080 => 4000),因为我在Vagrant虚拟机中安装了Jekyll,并在Macintosh下测试它。如果我使用默认设置(0.0.0.0:4000),它可以工作。我可以用http://localhost:8080从我的狩猎旅行中访问它。但是如果没有网络,我无法绑定0.0.0.0:4000。我使用jekyll server -H 127.0.0.1将服务绑定到127.0.0.1:4000,然后我不能通过http://localhost:8080访问它。
谁能解释0.0.0.0、127.0.0.1和localhost之间的区别?谁能解释为什么这个差异会导致这个问题?