2013-01-22 3 views
23

Node.js의 잘 알려진 http-web-server-example을 사용하여 내 컴퓨터에 Node.js 웹 서버를 만들었습니다. :MAC의 Node.js : 다른 컴퓨터에서 Node.js 웹 서버에 액세스

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

바딤 감사합니다. 이제 어떻게 작동하는지 더 자세히 설명합니다. 사실, 서버를'192.168.0.6'에 바인드 할 때이 주소에 액세스 할 때 작동하지만'localhost'는 작동하지 않습니다. 다시 한번 감사드립니다. – htaidirt

관련 문제