2012-01-08 4 views
0

ここに単純なTCPサーバがあります。このコードが実行されているVPSの実際のIPは同じVPS上のが私に答えながら、今私は、このサーバにpingを実行しようとしています1.2.3.4リモートPCからのnodejs tcpテスト

var net = require('net'); 

var server = net.createServer(function (socket) { 
    socket.write("Echo server\r\n"); 
    socket.pipe(socket); 
}); 

server.listen(1337, "127.0.0.1"); 

です。しかし、私はコマンドを介していくつかのリモートPCからVPSにアクセスしようとしているとき

nc 1.2.3.4 1337 

それはエコーしていません。考えられる原因は何か?

答えて

5

あなたは127.0.0.1を聞いています。したがって、ローカルホストからの要求にのみ応答します。他のホストに応答するには、0.0.0.0を聞く必要があります。

に更新次のようRFC5735は、このアドレスを説明:

0.0.0.0/8 - このブロックのアドレスは "この" ネットワーク上のソースホストを指します。アドレス0.0.0.0/32は、このネットワーク上のこの ホストの送信元アドレスとして使用できます。 0.0.0.0/8内の他のアドレスを使用して、 このネットワーク上の指定されたホストを参照することができます。

+0

この0.0.0.0は何ですか?私はその背後にある科学を意味しますか? localhostは127.0.0.1です。 – coure2011

+1

http://tools.ietf.org/html/rfc5735#page-3を参照してください。 – qiao

関連する問題