从另一台计算机连接到 localhost:3000 | expressjs,nodejs [重复]

Posted

技术标签:

【中文标题】从另一台计算机连接到 localhost:3000 | expressjs,nodejs [重复]【英文标题】:Connect to localhost:3000 from another computer | expressjs, nodejs [duplicate] 【发布时间】:2015-08-23 02:18:47 【问题描述】:

我目前正在处理一个项目,我想通过另一台计算机或手机对其进行测试。这台计算机连接在同一网络上。

如何连接到http://localhost:3000

我正在使用expressjsnodejs 模块)作为服务器。

【问题讨论】:

尝试使用 IP 地址?根据您的网络设置方式,计算机名称也可能有效。 这似乎是一个pretty heavily duplicated 问题。 没有重复他使用 xamp 服务器但我不使用它,我使用 expressjs 原理完全一样。你有一个服务器正在监听。您从客户端连接到它。该服务器是什么软件并不重要(只要您没有将其配置为在环回接口上侦听,但您没有向我们展示足够的信息来说明这一点)。 支持这个问题...将127.0.0.1 更改为0.0.0.0 解决了我的问题。我没有得到关于任何其他“重复”问题的信息。 【参考方案1】:

将您的应用程序配置为在 0.0.0.0 而不是 127.0.0.0(localhost) 上运行。例如:

app.listen(3000, '0.0.0.0', function() 
    console.log('Listening to port:  ' + 3000);
);

然后从另一台计算机连接到192.168.1.11:3000(或任何您的本地 IP 地址)。

【讨论】:

这回答了它的外观逻辑,但它对我不起作用:3'! ,当我访问0.0.0.0:3000时,无法连接 你需要访问192.168.1.11:3000(或任何你的地址),不是 0.0.0.0:3000 127.0.0.1 更改为0.0.0.0 是任何服务器的一般做法吗?还是只适用于 node.js?? 谢谢,它有效!有人能解释一下为什么吗? 0.0.0.0 是一个不可路由的元地址,用于指定无效、未知或不适用的目标(“无特定地址”占位符)。在路由条目的上下文中,它通常表示默认路由。在服务器上下文中,0.0.0.0 表示本地计算机上的所有 IPv4 地址。如果主机有两个 IP 地址,192.168.1.1 和 10.1.2.1,并且在主机上运行的服务器侦听 0.0.0.0,那么这两个 IP 都可以访问它。 @Luckylooke 更多信息可以看:howtogeek.com/225487/…【参考方案2】:

鉴于端口绑定到 127.0.0.1 (localhost) 以外的任何 IP 地址,您可以从任何其他系统访问它。

要查看您的 IP 地址,请使用 ipconfig (Windows) 或 ifconfig (Linux) 命令。 找出与您要访问的“其他系统”在同一网络中的 IP。 然后访问它,例如:172.16.0.12:3000

PS:即使通过另一个系统访问它,请记住包含端口3000。此外,如果已配置,可以使用主机名代替 IP 地址。

【讨论】:

完全正确的逻辑。解释得很好。【参考方案3】:

你的网址应该是这样的

http://yourcomputername:3000

要获取计算机名称,请打开命令提示符窗口并键入主机名,然后按 Enter

【讨论】:

是的,这就是最终在 macOS Sierra 上对我有用的方法。我一直在做 http://<name>.local:3000 但它只是计算机名称:http://doug:3000 对我有用 @Yuri 的方法也适用于 Mac,打开终端并输入 hostname

以上是关于从另一台计算机连接到 localhost:3000 | expressjs,nodejs [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一台计算机连接到JavaDB?

如何通过 odbc_connect() 从另一台计算机连接到 Microsoft Access 数据库?

从另一台计算机连接到在 Amazon EC2 上的 localhost 上运行的 Web 应用程序

无法从另一台机器连接到 Geth 节点 RPC

从网络中的另一台计算机连接到 localhost

禁用“允许远程连接到此服务器”后,我仍然可以从另一台机器连接