从virtualbox

时间:2016-09-22 21:40:23

标签: node.js network-programming virtualbox

我在ubuntu中运行了一个nodejs项目。所以我这样访问它:

http://localhost:9000/login

现在我正在尝试从我在虚拟机上运行的来宾windows7访问此服务器。

我的ubuntu IP是192.168.1.13而我的VM网络配置是桥接适配器所以我正在尝试

http://192.168.1.13:9000/login

但它不起作用

但是,当我在cmd中运行时,ping 192.168.1.13'它成功回复。

有人可以告诉我从访客那里访问我的服务器还需要做些什么吗?

2 个答案:

答案 0 :(得分:1)

查看文件/ etc / hosts并检查localhost的映射方式。当然它设置为127.0.0.1。如果您使nodejs应用程序侦听IP:端口192.168.1.13:9000,您将能够连接。或者更改我不推荐的localhost的映射。

答案 1 :(得分:1)

对于您想要实现的目标,您的Node.js应用程序应该侦听可从其他系统访问的指定IP地址和端口。

您无法期望来自外部世界(OS)的用户访问在您系统的本地主机中运行的网络应用程序。

将您的代码更改为类似内容,以允许它在APP_PRIVATE_IP_ADDRESS上侦听(替换您的IP,在这种情况下为192.168.1.13):

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  // your code 
}).listen(8080, 'APP_PRIVATE_IP_ADDRESS');
console.log('Server running at http://APP_PRIVATE_IP_ADDRESS:8080/');

此外,为了进一步提高辅助功能,请检查How To Set Up a Node.js Application for Production on Ubuntu 14.04