如何使 node.js 服务器可通过公共 IP 地址访问

Kon*_*kit 3 node.js

我一直在尝试使用 nodeJS 和 socket.io 制作在线多人游戏。我可以通过 localhost:3000 访问以测试我的网站,但现在我希望我的朋友也可以访问它。

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server, {});
server.listen(3000);
Run Code Online (Sandbox Code Playgroud)

我如何才能让其他人可以使用我在http://cmyip.com 上找到的公共 IP 地址访问我的网站,例如 [external-ip]:3000。

我尝试使用 ngrok,但它非常慢,每 30 毫秒发出一次数据的 socket.io 超过了 ngrok 限制。另外,我不想使用任何 DNS 或其他插件,我只是希望它很简单。

我使用的是 Mac OS,所以默认情况下我的防火墙是禁用的。

这是我的端口转发页面:(我的本地 IP 是 192.168.1.50)我做得对吗?我试过用游戏进行端口转发,效果很好,所以我认为这不是我的路由器。 在此处输入图片说明

Leo*_*Leo 9

如果您确定路由器没有问题,那么您可以尝试侦听0.0.0.0这意味着您将侦听外部和内部 IP 地址。

server.listen(3000,"0.0.0.0");

此外,您仍然需要检查您的 Brandmauer 或防火墙。