2011-08-26 67 views
10

我有基本的网络服务器你好世界应用程序的nodejs在Windows上,它在localhost上工作。但是,当我从互联网上测试它不能连接。我在我的netgear路由器中设置了端口转发。我在这里错过了一个步骤,让我的nodejs服务器对外界可见吗?Node.JS不工作在互联网上

谢谢。

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(1337, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:1337/'); 
+0

如果您向我们展示您正在使用的代码,这将有所帮助。 – AppleGrew

+0

这只是nodejs网站上的hello world web服务器。 – BRampersad

回答

17

确保你听上的0.0.0.0代替127.0.0.1

127.0.0.1是可见的只有到您的计算机的专用网络。 0.0.0.0侦听所有接口,包括私有和公共(因为它可以位于NAT后面)。

+0

很酷,你从哪里学到的?甚至不知道0.0.0.0是一个有效的IP。 – BRampersad

+0

拿起它在Linuxland的某个地方,可能手动编辑lighttpd配置或其他东西。有一阵子了。 –

+0

我有同样的问题,我没有使用0.0.0.0,但仍然无法访问我的服务器以外。 – xybrek

0

看起来您正在将服务器绑定到IP地址为127.0.0.1的本地主机。如果你想在别处访问它,你需要将它设置为互联网IP。查看whatismyip.com并使用该IP来代替。

+0

这不会工作,如果他在NAT后面。他的内部IP地址将(可能)为192.168.x.x,但他的公开地址将完全不同。 –

+0

如果你在NAT后面该怎么办? – rocketspacer

相关问题