3
Android device ( Internet Connected )
  |
(Wi-Fi Hot-spot) 
  |
  |
Computer ( NodeJs Server started )

NodeJs 服务器仅以私有 IP 启动...
如何以公共 IP启动 NodeJs 服务器?

电脑中启动的NodeJs服务器:(未列出公网IP

C:\Users\ASUS>http-server .
Starting up http-server, serving .
Available on:
  http://192.168.42.74:8080
  http://192.168.137.1:8080
  http://127.0.0.1:8080
Hit CTRL-C to stop the server

[但是,如果我在我的 Android 设备中启动服务器(使用 Termux),我将获得公共 IP... ]

4

1 回答 1

2

哇,这是一个有趣的问题。如果您想在 LAN 中使用您的服务器,您只需输入服务器的 IP 地址和端口号即可。服务器可以是您的手机或计算机。在移动热点的情况下,您可以使用其默认网关 IP 访问它,默认为 192.168.43.1。 在这里你可以查看我给出的演示,其中移动热点被用作局域网中所有设备的服务器。

棘手的部分是当您尝试从 Internet 访问您的服务器时。显然,当您连接到 Internet 时,ISP 会为您的路由器(或移动设备)提供一个公共 IP。任何传入或传出 LAN 的数据都使用此公共 IP。分配一个公共 IP 的原因之一是隐藏路由器对其执行 NAT 的 LAN 设备的 IP。

您可以将路由器配置为将传入流量重定向到 LAN 中将运行 NodeJs 服务器的特定设备。我认为,您可以为此进行端口转发。在这里检查答案。请记住,公共 IP 不是静态的。ISP 使用 DHCP 为其客户动态分配公共 IP。

于 2020-07-26T06:34:11.023 回答