экспресс-сервер приложений. слушайте все intefaces вместо localhost только

Я очень новичок в этом материале и пытаюсь сделать какое-то экспресс-приложение

var express = require('express');
var app = express();

app.listen(3000, function(err) {
    if(err){
       console.log(err);
       } else {
       console.log("listen:3000");
    }
});

//something useful
app.get('*', function(req, res) {
  res.status(200).send('ok')
});

когда я запускаю сервер с командой:

node server.js 

все идет хорошо.

вижу на консоли

listen:3000

и

curl http://localhost:3000

Я вижу "ОК".

когда я пытаюсь

telnet localhost

Я вижу

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]' 

но когда я пытаюсь

netstat -na | grep :3000

Я вижу

tcp  0  0 0.0.0.0:3000   0.0.0.0:*  LISTEN

вопрос: почему он слушает все интерфейсы, а не только localhost?

ОС linux mint 17 без каких-либо свистков.

2 ответов


вы можете привязать IP-адрес, используя следующий код

app.listen(3000, '127.0.0.1');

из документации: app.listen(port, [hostname], [backlog], [callback])

связывает и прослушивает соединения на указанном Хосте и Порту. Этот метод идентичен http узла.Сервер.слушать.)(

var express = require('express');
var app = express();
app.listen(3000, '0.0.0.0');