我到处寻找答案,但没有运气。
我在我的服务器上安装了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正在监听连接。
那么 - 我在这里做错了什么?
答案 0 :(得分:3)
您最有可能支持网络地址转换(NAT)。
如果您使用的是普通的家庭互联网连接并且有网关路由器,那么您可以使用家庭的互联网连接(通过以太网或Wifi连接)使用多台设备,不是吗?
但你只有一个IP地址。
为实现此目的,路由器允许您连接 out - 但不允许从外部启动任何连接(简化相关性 - 如果您需要更多信息,请阅读)。
您将不得不考虑配置端口转发 - 您希望外部端口8080转发到计算机的内部 IP地址。