2012-01-30 4 views
4

私はこれについての答えをどこからでも見てきましたが、運がなかった。外部からnode.jsにアクセスできない

私は自分のサーバーにnode.jsをインストールしました。サーバー上でスクリプトを実行した後

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/'); 

::私はのような標準的な「Hello World」の例を作成しました

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コマンドを実行すると私が手:私はポート8080が接続を監視していることを私に語ったと思います

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  -    

私はここで何が間違っていますか?

+0

OSファイアウォールソフトウェアはどうですか? –

答えて

3

ほとんどの場合、ネットワークアドレス変換(NAT)の背後にある可能性があります。

通常の家庭用インターネット接続を使用していて、ゲートウェイルーターを使用している場合は、自宅のインターネット接続(イーサネットまたは無線LAN経由で接続)を使用して複数のデバイスを使用できますか?

ただし、IPアドレスは1つのみです。

に接続することができますが、外部からの接続を元に戻すことはできません(関連性の簡素化 - 詳細を知りたい場合は読んでください)。

あなたはを転送ポートの設定を見てする必要があるとしている - あなたは、外部ポート8080は、コンピュータの内部 IPアドレスに転送したいです。

+0

これは実際にSlicehostでホストされています。 – tptcat

+0

@tptcatそれではポートはオープンでなければなりません。私は何を言いたいのですか? 'nmap 'を使って接続の問題を診断しようとしましたか? – Borealid

+0

私はそれを働かせました。私は、実際にiptablesにポート8080を追加するために使用していたものは、ルールに使用されていた実際のiptablesファイルを持っていたので、実際には使用していなかったと思いました。 私のiptablesファイルにポート8080を追加すると、すべてがうまくいきました。 – tptcat