我正在利用 PhilipsHue API 来打开/关闭灯。但是,我只能在我家的内部网络上执行此操作,因此我希望能够从外部访问它,因此在研究了如何操作后,我尝试了以下方法。
- 托管此 api 的节点应用程序正在我的 Mac 上运行,
localhost:80
因此它几乎是我的本地内部服务器。这台 Mac 的内部 IP 为192.168.1.220
。 - 我登录了路由器设置并将端口转发
6000
到我的 Mac。
- 因此,我尝试通过
<Gateway IPv4 Address>:6000
它访问我的应用程序,据我所知,这是我路由器的外部 IP 地址。我原本以为它的作用类似于 nginx 代理传递,传入的请求<Gateway IPv4 Address>:6000
将被路由到192.168.1.220:80
(我的 mac 的内部 IP 地址),但没有成功。Postman 说“无法获得任何响应”。
答案1
出现这种情况的原因可能有很多。您的连接可能是 DHCP,并且您可能在续订租约后尝试连接。您应该联系您的 ISP,检查他们是否允许您使用静态地址,如果不允许,请购买具有 VPN 功能的调制解调器或路由器。
其次,您没有详细说明您的 Mac 上的防火墙是否已启用。如果已启用,请为您的连接设置例外。
第三,我不确定您的基础设施如何。您有调制解调器/路由器组合吗?或者您有将流量转发到调制解调器的调制解调器吗?如果您有两台设备,其中一台设备可能会阻止流量。检查调制解调器和路由器的日志,看看是否可以看到连接。
第四,即使您转发了端口 6000,您仍可能需要转发 80,因为这是您要连接的端口。端口 6000 只是您需要访问的服务器上的端口。这很可能是错误所在,但请将其放在最后,以便您可以先验证其他步骤 :D
答案2
同意@RonMaupin 。
这个配置叫做 PAT。它允许我们将外部 IP 地址的端口映射到内部 IP 地址的端口。通常,我们需要 4 个参数来配置它。
- 外部 IP 地址(默认情况下,它是路由器的 WAN IP 地址)
- 外部端口(您的情况是 6000)
- 内部 IP 地址(您的情况是 192.168.1.220)
- 内部端口(应该是 80,但您的屏幕截图中没有显示,所以我怀疑您的路由器是否支持将外部请求重定向到其他端口)