我能够使用 Windows 的 Putty(端口 TCP 22)连接到我的 EC2,但不能连接到其他端口(例如端口 TCP 80 或 TCP 3000)。
使用后netstat
我可以看到我在 22 以外的端口上获得了 SYN_SENT:
netstat -na |find "35.181.14.57"
TCP 192.168.53.151:58660 35.181.14.57:22 ESTABLISHED
TCP 192.168.53.151:58694 35.181.14.57:22 ESTABLISHED
TCP 192.168.53.151:62362 35.181.14.57:80 SYN_SENT
TCP 192.168.53.151:62363 35.181.14.57:80 SYN_SENT
EC2 的安全组包含 80 和 3000 端口,就像打开端口 22 一样。另外,我尝试完全打开入站端口:
在本地运行curl
证明服务器正在监听该端口:
curl http://127.0.0.1:80
Hello World
我还验证了 ubuntu 的本地防火墙已被禁用:
sudo ufw disable
Firewall stopped and disabled on system startup
这里变得疯狂起来,我错过了什么??
答案1
问题解决了!显然,我下载了一个糟糕的 Hello World 示例。它是一个运行以下代码的 node.js 服务器:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(3000, "127.0.0.1");
console.log('Server running at http://127.0.0.1:3000/');
指定 IP 时,服务器会监听针对该 IP 的请求。删除 IP - 解决了该问题。
}).listen(3000);