2016-12-07 117 views
-1

我最近得到了node.JS 我一直在看的所有教程告诉我去本地主机查看应用程序,我使用的是端口2000.我明白localhost也是我的ip .. 192.168.0.1:2000,我有调制解调器设置端口转发端口2000,但服务器仍然无法从其他网络访问。请帮忙。那么我怎样才能从其他网络访问我的网站?如何从其他网络访问我的网站?

//app.js 
var express = require('express'); 
var app = express(); 
var serv = require('http').Server(app); 

app.get('/',function(req, res) { 
    res.sendFile(__dirname + '/client/index.html'); 
}); 
app.use('/client',express.static(__dirname + '/client')); 

serv.listen(2000); 
console.log("Server started."); 
+3

错误的论坛,但无论如何。当您尝试从其他网络访问它时,您需要使用您的传出IP,而不是本地。你是?另外,我怀疑你的portforwarding是不正确的。您需要将端口2000转发到承载nodejs程序的机器。不要到192.168.0.1,因为那是你的路由器本地ip – Aidin

+0

对不起,我犯了一个错误私人IP实际上是192.168.0.2。如何在节点js中使用我的公共ip? – Bob

+0

看到我发布的链接。另外,请在这里插入你的nodejs代码。 – Aidin

回答

1

据我所知,本地主机也是一样的我的IP .. 192.168.0.1:2000

它不是。网络上的计算机通常具有多个IP地址。

localhost将指向回送接口(通常位于127.0.0.1::1)。

192.168.0.1是一个私人IP地址(因此它可能是您的局域网上的一台机器)。虽然不太可能是您的计算机的WiFi或以太网接口的地址。它通常由路由器使用。

您需要:

  1. 确认是否192.168.0.1是您的计算机或没有的IP地址(如果有的话得到正确的地址)
  2. 确保端口转发配置为指向正确的解决了正确的端口
  3. 确保您的Node.js应用程序是正确的网络接口上侦听(你可能已经写它,所以它仅侦听localhost
  4. 确保当您尝试从外部访问网络中,您正在使用面向公众的路由器的IP地址

请注意,某些路由器不会让您从网络内部访问其面向外部的IP地址,因此您可能必须从外部机器你的网络。

+0

对不起,输入的私有IP地址实际上是192.168.0.2。端口转发配置为更正地址。我如何确保Node.js正在监听正确的网络接口?是的,我一直在我的网络之外的机器上进行测试。 (过马路上的朋友家) – Bob

+0

@Bob这里你去:http:// stackoverflow。com/questions/8325480/set-up-node-so-it-is-external-visible – Aidin

+0

谢谢,虽然 – Bob