linode新手问题,关于node直接监听端口,外网通过ip访问不了的问题?


情况如此:
在linode已经安装好了node,并且写了个demo(node官网那段hello,world),在服务器上运行无问题,curl localhost也可以返回。但是如果 curl ip 就访问不了。当然外网不能访问。
我已经查看了80端口。已经被node占用。
查看防火墙,也开启了web访问。(或者就说没开。。)
没找到原因。

后来装了nginx,start nginx后没问题,都可以访问。

想问下原因?之前在阿里云上直接运行node都可以。。

服务器 node.js nginx Ubuntu

别说b话丶 10 years, 3 months ago

Linode是一款比较不错的VPS,应该不存在你说的无法外网访问的问题。而且,nginx可以访问到,也确实说明网络设置没有问题。

这样看来,可能的原因只有一个,你的node.js被设定为了只监听 localhost的80端口。你需要将node.js配置为监听0.0.0.0,这样一来,所有的外部IP都可以访问了。

具体可以参考如下代码:

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(8080, "0.0.0.0");
console.log('Server running at http://0.0.0.0:8080/');
⑧个鸭鹿ㄨ挡 answered 10 years, 3 months ago

Your Answer