将路由器端口转发设置为监听在家用电脑上的node.js服务器

5
我有一个域名:www.domain.com。我在路由器上设置了一条DNS类型的A记录,指向我的公网IP地址。
现在,如果我访问www.domain.com,我将被重定向到路由器的主页。我需要将端口转发到运行在localhost:3000上的node.js服务器应用程序。
参考图片:http://i.imgur.com/WyxBKmY.png IP地址应该是从终端输入ifconfig获得的计算机IP地址。所以我输入了我的电脑IP地址和端口号3000。
现在,如果我再次访问www.domain.com,仍然会显示路由器的主页。
请问有人知道我应该输入哪个端口吗?

你需要将本地主机设置为域名。虽然有多种方法可以实现这一点,但你可以找到很多教程来将localhost更改为example.net或其他名称。 - wuno
@wuno 目前我正在使用 express.js 连接我的应用程序到 node.js 服务器。不确定你对 express 的熟悉程度,但连接我的应用程序到 node.js 的代码是:app.listen(3000);你的意思是修改我的应用程序代码,使其监听 myapp node.js 服务器吗?还是需要修改一些 ubuntu 本地主机文件? - BobbyBear
3个回答

8

你是真的想在本地机器上运行生产网站 www.[yourdomain].com 吗?还是这只是一个例子,你只是想要一个可公开访问的开发/测试环境?

如果是后者,那么你也可以尝试完全不同的解决方案:使用端口转发软件像ngrok。你可以在本地机器上安装并运行 ngrok 客户端,它将为您设置隧道,使您的本地机器在互联网上可见。

你会收到一个类似于 http://6cdd8912.ngrok.io 的URL,该URL连接到你的本地机器。

每次你启动 ngrok,都会创建一个带有新主机名的新隧道,因此这不是生产网站的好解决方案。


1
我感兴趣的是第一个。 - BobbyBear

1
在路由器中,您可以将路由器的主页端口配置为其他端口(例如8080)。
在端口转发中:进行如下配置:
本地端口和IP:端口起始值:80,端口结束值:80。
远程端口和IP:选择:IP地址:node.js服务器的本地IP地址
端口起始值:3000 端口结束值:3000

0
故障排除测试: 有两件事需要注意。您的IP地址(外部与内部)和端口转发。 需要记住的事情: 1.您只能将端口转发到一个设备。 2.当您进行端口转发时,您需要使用要进行端口转发的设备的本地(内部)IP地址。
测试:
1.尝试从另一台计算机(位于您的本地网络中)访问您的站点。如果您可以看到它,则您的路由器主页已设置为相同的端口。您需要更改它。在制造路由器网页的公司的支持中查找它。
2.尝试从网络外部访问。(关闭Wi-Fi的手机) 如果您看到您的路由器主页,则您的路由器已设置为启用远程访问路由器。您需要关闭它。
3.在CMD窗口(Windows 10在左下角的Cortana搜索框中键入cmd并按Enter)中键入“ipconfig”,然后按Enter。默认IP是您的路由器,“IPv4地址”是您现在所在设备的IP。当您进行端口转发时,请使用您的IPv4地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接