无法从stream浪主机访问节点快递应用程序

我是新来的networking和分配端口和这种性质的东西。 我一直在使用stream浪汉,从来没有任何问题试图获得testing环境,然后通过主机浏览器访问它。 在我的stream浪文件中为此设置是这样的:

# network stuff config.vm.network "forwarded_port", guest: 8000, host: 8000 config.vm.network "private_network", ip: "192.168.33.10" config.vm.hostname = "test-box-debian" 

现在我正在学习一些关于node.js的知识,每个教程都说我可以运行npm start ,而且这个工作正常。 我可以调用wget localhost:3000 (端口3000是默认的快速),并返回从快递的index.html默认页面。

但是,当我尝试从主机浏览器访问“192.168.33.10:3000”时,它不起作用。 我可以运行netstat并得到以下结果:

 sudo netstat -ltpn | grep 3000 tcp6 0 0 :::3000 :::* LISTEN 17238/node 

我可以看到有些东西看起来不正确,但是我不太了解端口和networking知道什么是错的,以及如何解决这个问题。

首先,确保您的服务器正在侦听正确的IP,并且您没有将Express侦听器绑定在其他地方:

.listen(3000).listen(3000, '127.0.0.1')

或者,尝试将Express服务器绑定到您的私有IP或通配符IP,然后查看是否解决了您的连接问题:

 // Wildcard (All IP's) binding .listen(3000, '0.0.0.0') // Specific binding .listen(3000, '192.168.33.10') 

最后,端口3000可能无法从主机访问。 如果您的服务器代码中没有上述选项,请尝试将以下行添加到您的Vagrant文​​件中:

config.vm.network "forwarded_port", guest: 3000, host: 3000

确保您的虚拟机没有防火墙阻止端口:

sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

通过https://stackoverflow.com/a/28474080/1772120find答案。