我不能连接到我的亚马逊ec2运行nodejs使用tcp



大家好,我已经创建了一个Ubuntu EC2实例并在其上安装了nodejs。我正在运行一个简单的node js脚本(它正在运行并且没有抛出任何错误:

var net = require('net');
var server = net.createServer(function (socket) {
    socket.write("from serverrn");
    socket.pipe(socket);
});
server.listen(8000, "localhost");
console.log("TCP server listening on port 8000 at localhost.");

为了测试这一点,(我在windows上)我运行一个名为hercules的程序来尝试tcp连接,但它总是返回tcp连接错误:10061IP地址也不能ping通

我的ec2的IP地址是54.76.31.140我在aws控制台的安全组中添加了入站tcp:8000 0.0.0.0规则,并在windows防火墙和avg例外中添加了hercules。我还在我的家庭dsl路由器上添加了一个例外,最后我检查了ubuntu iptables没有设置规则。

请帮帮我,我好像找不到哪里不对。

如果您告诉服务器监听"localhost",那是它唯一会监听的地方——"localhost"——环回接口127.0.0.1,它只能从…本地主机。

删除server.listen()的第二个参数。

http://nodejs.org/api/net.html net_server_listen_port_host_backlog_callback

如果你想ping你的实例,你必须在安全组中允许ICMP。

同样,在修复它之前和之后,运行这个命令,并注意输出中的差异:

 $ netstat -a -n | grep 8000 | grep -i tcp

最新更新