快递应用服务器。只监听所有接口而不是localhost
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快递应用服务器。只监听所有接口而不是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薄荷17没有任何口哨。
答案
如果您在调用app.listen
时使用不指定host,则服务器将在所有可用接口上运行(0.0.0.0
)
您可以使用以下代码绑定IP地址
app.listen(3000, '127.0.0.1');
另一答案
From the documentation:app.listen(port, [hostname], [backlog], [callback])
绑定并侦听指定主机和端口上的连接。此方法与Node的http.Server.listen()相同。
var express = require('express');
var app = express();
app.listen(3000, '0.0.0.0');
以上是关于快递应用服务器。只监听所有接口而不是localhost的主要内容,如果未能解决你的问题,请参考以下文章