2016-03-28 7 views
2

私はNodeJsを初めて使用しています。私はlocalhost127.0.0.1192.168.1.103からサーバにアクセスすることができますNodeJsサーバーはインターネットからアクセスできない

var http = require('http'); 
var fs = require('fs'); 

var server = http.createServer(function (req, res) { 
    console.log(req.url); 
    res.end(); 
}).listen(8000); 

が、私は私のパブリックIPアドレスからサーバーにアクセスしようとする84.47.***.**:私はこのような私のローカル開発システムにおけるシンプルなNode.jsのサーバーを起動しました私は取得しています唯一のものは、次のとおりです。

timeout

私は過去2時間のためにこれについての記事を読んでいると、すべてがちょうど何も提供されていない場合はNode.jsのためのデフォルトのホストである0.0.0.0としてホストを設定すると言って。

私のパブリックIPにpingを実行し、結果を取得できます。

私はWindows 8.1上にあり、Windowsファイアウォールはoffであり、カスタム定義のルールをcomodoファイアウォールで定義し、単にcomodoファイアウォールも無効にしていることを確認しました。

node.jsがTCP接続の場合、0.0.0.0:8000:::8000(IPv6であると思います)でリッスンしていることを確認します。

私はここで何が欠けていますか?私は何をすべきか?それは窓のためですか?または何?

これに関するお手伝いをお待ちしております。

+0

try changed ...})。listen(8000); .......... to})。listen( "0.0.0.0"、8000); – damitj07

+0

@ damitj07 ipは2番目のパラメータで、デフォルト値は0.0.0.0です。すでに 'listen(8000、 '0.0.0.0')'を試しています。あなたの提案が間違っていて、エラー 'エラー:EACCES 0.0.0.0を聞く' – Exlord

答えて

0

私は自分自身を考え出しましたが、nodejs自体(whoooops)とは関係ありませんでした。私はルーターの背後にあったので、私はルーターにポートフォワーディングをセットアップしなければなりませんでした。それでは、私はnodejsの着信接続を許可するためにファイアウォールのルールを定義していましたが、まだ着信接続をブロックしていましたので、希望のポートの着信接続を許可するためにはGlobal Rulesにルールを定義しなければなりません。

1

どのようにインターネットに接続しましたか?あなたはルータを持っていますか?ルータをお持ちの場合は、外部IPおよびポートからPCのローカルIPおよびポートへのポート転送用に設定する必要があります。ノードサーバーでは、ローカルIPを聞く必要があります(このIPルーターで要求を転送します)。ルータを持っていない場合は、ネットワークカードでリスンするためにパブリックIPを使用する必要があります。

関連する問題