无法连接到 Vagrant 中的 mean.io

Unable to connect to mean.io in Vagrant

我在设置 vagrant 运行ning CentOS7 后连接到 mean.io 服务器时遇到问题。我有端口转发和禁用/打开防火墙,但在 wget 或 curl -v 上仍然没有响应。

我已自动完成以下步骤以到达我现在所在的位置:

git clone git@github.com:Scrier/Vagrant.git
cd Vagrant/mean
vagrant up

这里我得到了端口转发设置的输出:

==> default: Attempting graceful shutdown of VM...
==> default: Clearing any previously set forwarded ports...
==> default: Couldn't find Cheffile at ./Cheffile.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 3000 => 3000 (adapter 1)
    default: 35729 => 35729 (adapter 1)
    default: 80 => 8888 (adapter 1)
    default: 22 => 2222 (adapter 1)
...

下一步是在 Vagrant 中:

vagrant ssh
cd /vagrant
sudo ./install.sh
sudo npm install -g gulp
sudo npm install -g bower
sudo npm install -g mean-cli

最后 3 个命令有时不起作用,在后面的步骤中抱怨某些 npm:s 归 root 所有。不确定是什么触发了这个。

接下来我在/vagrant中创建一个测试项目

mean init test

然后我尝试 运行 作为 gulp (cd test && npm install && gulp) 或服务器(节点服务器)

默认应用程序正常启动并开始侦听端口 3000。我可以卷曲 vagrant 并在服务器响应的本地主机上执行 wget。

curl 'http://localhost:3000'
wget 'http://localhost:3000'

从 vagrant 外部执行此操作会获得锁定,经过 3 天的搜索,我现在无法在网上找到更多帮助。

curl -v 'http://localhost:3000'
wget 'http://localhost:3000'

给出此输出:

Andreass-MBP:~ andreasjoelsson$ wget 'http://localhost:3000'
--2015-04-21 20:50:30--  http://localhost:3000/
Resolving localhost... 127.0.0.1, ::1, fe80::1
Connecting to localhost|127.0.0.1|:3000... connected.
HTTP request sent, awaiting response... ^C

Andreass-MBP:~ andreasjoelsson$ curl -v 'http://localhost:3000'
* Rebuilt URL to: http://localhost:3000/
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:3000
> Accept: */*
>
^C

都停止响应。

我读过有关设置 ip 0.0.0.0 而不是 localhost 的类似问题 运行ning nodejs,但是我找不到任何配置。

所以,经过很长一段时间我的头脑反对这个我通过尝试这个线程中的建议让它工作:Empty reply from server - can't connect to vagrant vm w/port forwarding

通过将本地主机的 /etc/hosts 中的 127.0.0.1 更改为 0.0.0.0,它开始工作。看起来很奇怪,我必须去攻击 /etc/hosts 而不是 mean.io 中的设置,但我让它工作了所以我会安静地忘记它并为它工作而高兴。

以下是使其工作的快速命令。

sed -i -E "s/127.0.0.1(.*)/0.0.0.0 # Replaced 127.0.0.1 to work with Vagrant external access./" /etc/hosts

可能需要 运行 它作为 root。