我到处寻找这个问题的答案,但没有任何运气。
我已经在服务器上安装了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端口时,我得到一个“无法连接到服务器”的错误。我也在我的listen函数中尝试过:
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正在侦听连接。
那么--我到底做错了什么?
发布于 2012-01-30 02:41:36
您很可能位于网络地址转换(NAT)之后。
如果你正在使用普通的家庭互联网连接,并且你有一个网关路由器,你可以有多个设备使用你家庭的互联网连接(通过以太网或Wifi连接),不是吗?
但您只有一个IP地址。
要做到这一点,路由器允许您连接out -但不允许从外部发起的任何连接返回(为了相关性简化-如果您想要更多信息,请阅读)。
您将不得不考虑配置端口转发-您希望外部端口8080转发到您计算机的内部 IP地址。
https://stackoverflow.com/questions/9058736
复制相似问题