快递应用服务器。只监听所有接口而不是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 documentationapp.listen(port, [hostname], [backlog], [callback])

绑定并侦听指定主机和端口上的连接。此方法与Node的http.Server.listen()相同。

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

以上是关于快递应用服务器。只监听所有接口而不是localhost的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Quarkus 监听所有网络接口而不是 localhost?

.net的快递鸟物流单号自动识别查询api接口demo实例

IIS 只监听 127.0.0.1 而不是 0.0.0.0

java对接快递鸟单号查询自动识别接口,调用示例

为什么扭曲网建议 - 听取而不是--port?

JavaWeb通过快递单号展示物流信息转JSON显示(servlet)