2014-07-10 39 views
0

大家好我已經創建了一個Ubuntu EC2實例,並且已經安裝了nodejs。我運行一個簡單的節點js腳本(這是運行和不拋出任何錯誤:我無法連接到我的亞馬遜ec2使用tcp運行nodejs

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

來測試這一點,(我在Windows上)我運行一個叫大力神嘗試TCP連接的程序,但它永遠是返回tcp連接錯誤:10061 並且IP地址也不能ping通

我的ec2的IP地址是54.76.31.140。我已經在我的安全組中添加了入站tcp:8000 0.0.0.0規則aws控制檯和我已經添加hercules到我的Windows防火牆和平均例外。我也添加了一個例外,我家dsl路由器,最後我檢查了Ubuntu的iptables沒有規則設置。

請幫助,我似乎無法找到這裏有什麼問題。

回答

1

如果您告訴服務器監聽「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 
+0

這真的是那麼簡單,這真的讓我很煩,所有的教程和「實例」 IV」到目前爲止,看到使用localhost作爲參數。像那樣會有所幫助。 – user2765977