Javascript 为什么';这个IP地址是否适用于Node.js客户端?

Javascript 为什么';这个IP地址是否适用于Node.js客户端?,javascript,node.js,ip-address,Javascript,Node.js,Ip Address,我有一个不寻常的问题。我正在运行一个简单的node.js应用程序。下面的代码可以工作 var app = require('http').createServer(handler); var io = require('socket.io').listen(app); app.listen(8000, '127.0.0.1'); 但是,如果我使用app.listen(8000,'192.168.1.4'),没有客户端能够连接到服务器。192.168.1.4是我的本地机器的IP地址 我注意到的

我有一个不寻常的问题。我正在运行一个简单的node.js应用程序。下面的代码可以工作

var app = require('http').createServer(handler);
var io = require('socket.io').listen(app);

app.listen(8000, '127.0.0.1');
但是,如果我使用app.listen(8000,'192.168.1.4'),没有客户端能够连接到服务器。192.168.1.4是我的本地机器的IP地址

我注意到的一件事是,即使当app.listen(8000,'127.0.0.1')”,可以正常工作,但不能正常工作

有人知道我做错了什么吗?

127.0.0.1
localhost
)是环回适配器的IP地址。环回适配器是一种特殊的接口,基本上允许程序在同一台机器上相互通信(通信绕过物理接口)

您的实际IP地址(在您的示例中不起作用的IP地址)绑定到网络设备,如以太网适配器

正如所建议的,如果您想在外部公开API,使用
0.0.0.0
(所有可用接口)应该可以工作。

127.0.0.1
localhost
)是环回适配器的IP地址。环回适配器是一种特殊的接口,基本上允许程序在同一台机器上相互通信(通信绕过物理接口)

您的实际IP地址(在您的示例中不起作用的IP地址)绑定到网络设备,如以太网适配器

正如所建议的那样,如果您想在外部公开API,使用
0.0.0
(所有可用的接口)应该可以工作。

行:

app.listen(8000, IP_ADDRESS);
是指在拥有该IP地址的设备(以太网、wifi、环回)上侦听端口8000,以便连接到该IP地址

因此,如果使用
127.0.0.1
只有本地主机可以连接到它,如果使用
192.168.1.4
本地主机无法连接到它,只有
192.168.1.xxx
网络上的机器可以连接到它(我假设网络掩码为
/8

为了允许两个网络连接,您可以侦听两个IP地址:

var http = require('http');

var app1 = http.createServer(handler);
app1.listen(8000, '127.0.0.1');

var app2 = http.createServer(handler);
app2.listen(8000, '192.168.1.4');
或者,如果您不关心请求来自何处,并且希望它侦听来自任何地方的数据包,请不要向其传递IP地址:

// listen to port 8000 on all interfaces:
app.listen(8000);
该行:

app.listen(8000, IP_ADDRESS);
是指在拥有该IP地址的设备(以太网、wifi、环回)上侦听端口8000,以便连接到该IP地址

因此,如果使用
127.0.0.1
只有本地主机可以连接到它,如果使用
192.168.1.4
本地主机无法连接到它,只有
192.168.1.xxx
网络上的机器可以连接到它(我假设网络掩码为
/8

为了允许两个网络连接,您可以侦听两个IP地址:

var http = require('http');

var app1 = http.createServer(handler);
app1.listen(8000, '127.0.0.1');

var app2 = http.createServer(handler);
app2.listen(8000, '192.168.1.4');
或者,如果您不关心请求来自何处,并且希望它侦听来自任何地方的数据包,请不要向其传递IP地址:

// listen to port 8000 on all interfaces:
app.listen(8000);

你需要在
0.0.0.0:8000
@ZeMoon:我该怎么做?使用
app.listen(8000,'0.0.0.0')?我不能只写是的,它太短了一条评论:P.如果这也不起作用,看看你的防火墙。你需要在
0.0.0.0:8000
@ZeMoon:我怎么做?使用
app.listen(8000,'0.0.0.0')?我不能只写是的,它太短了一条评论:P。如果这也不起作用,看看你的防火墙。