无法从外部访问node.js
问题描述:
我对这个问题处处寻找答案,但一直没有任何运气。无法从外部访问node.js
我在我的服务器上安装了node.js。我创建像标准的“Hello World”的例子:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8080, "0.0.0.0");
console.log('Server running at http://0.0.0.0:8080/');
在服务器上运行该脚本后:
node app.js
我可以连接内部端口808,并看到Hello World
消息,但是当我尝试从外部连接到端口8080我的服务器,我得到一个“无法连接到服务器”的错误。我也试过这个在我的听功能:
etc..
}).listen(8080, "204.xxx.xxx.xxx");
(与我的真实外部IP地址),并没有任何运气。
我试图通过增加这iptables来接受8080连接:
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
,但仍然有碰了壁。当我运行netstat我得到:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
我认为告诉我,8080端口侦听连接。
那么 - 我在这里做错了什么?
答
你最有可能落后网络地址转换(NAT)。
如果您使用的是普通家庭的互联网连接和你有一个网关路由器,你可以使用你家的网络连接(通过以太网或WiFi已连接),无有多个设备?
但是你只有一个IP地址。
要做到这一点,路由器可以连接出 - 但不会让回(简化的相关性 - 读,如果你想了解更多信息)从外部发起的任何连接。
你要来看看配置端口转发 - 你想外部端口8080转发到您的计算机的内部 IP地址。
操作系统防火墙软件怎么样? – 2012-01-30 03:15:55