2013-01-22 8 views
23

よく知られているhttp-web-server-exampleのNode.jsを使用して、自分のコンピュータにNode.js Webサーバーを構築しました:MAC上のNode.js:別のコンピュータからNode.js Webサーバーにアクセスする

var http = require('http'); 

http.createServer(function(req, res){ 
    res.writeHead(200, {'content-type': 'text/plain'}); 
    res.end('It works'); 
}).listen(3000, '127.0.0.1'); 

これは、サーバーを実行しているコンピュータで(予想通り)動作します。

同じLAN内の別のコンピュータからサーバーにアクセスしたいと思います。サーバ(Apple MacOSX)を実行するコンピュータの端末にifconfigを使用して、私は192.168.0.6を得る。

だから、私の他のコンピュータでは、私は私のブラウザを開いて、http://192.168.0.6:3000に接続されているが、私が手:

Oops! Google Chrome could not connect to 192.168.0.6:3000 

私の最終的な目的は、私のスマートフォンを使用してサーバーに接続できるようにすることです。

何か歓迎致します。必要に応じて、詳細を尋ねることをためらってください。事前に

感謝:)

答えて

35

127.0.0.1唯一のローカルインタフェースです。すべてのインターフェイスの再生を開始してください:

var http = require('http'); 

http.createServer(function(req, res){ 
    res.writeHead(200, {'content-type': 'text/plain'}); 
    res.end('It works'); 
}).listen(3000, '0.0.0.0'); 
+1

ワウ!ありがとうVadim、それは(私のスマートフォンでも)動作します。可能であれば詳細を教えてください。 – htaidirt

+5

お使いのマシンにはいくつかのネットワークインターフェイスがあります。あなたは 'ifconfig'コマンドを実行することですべてを見ることができます。 '127.0.0.1'を設定すると、node.jsサーバをループバックインターフェイスにのみバインドします。このインターフェイスは、実行中のマシンからのみアクセス可能です。 '0.0.0.0'は利用可能な全てのインターフェースのエイリアスです。また、サーバーを '192.168.0.6'のような別の選択されたインターフェースにバインドすることもできますが、この場合は' http://127.0.0.1:3000'でアクセスできません。 –

+0

Vadimありがとうございます。今私はそれがどのように動作するかを理解しています。実際、サーバを '192.168.0.6'にバインドすると、このアドレスにアクセスするときに動作しますが、' localhost'では動作しません。再度、感謝します。 – htaidirt

関連する問題