我正在尝试使用由我开发的Web应用程序通过Internet与NodeMCU进行连接,我已经实现的目标是使用静态IP(仍然不太稳定)通过同一网络中的wifi控制它,但是我需要这次是为了能够从世界任何地方进行控制,而不必每次更改Web应用程序中的公共ip时,我都找到了有关NO_IP的信息,但是我不太确定它是如何工作的。

评论

将IoT设备暴露于外部Internet时如何避免端口转发的可能重复项?

@mico不,一点也不。找出要到达的公共IP与路由外部请求到达正确的IP是一个不同的问题。

实际问题是相同的。不同之处只是解决方案的第一个想法;在这种情况下,这是一个非常不明智且不充分的想法,因为仅知道IP地址就不够,同时也没有允许进入流量的漏洞。

#1 楼

正如已经在此问题中回答的那样,几乎每个动态dns提供程序都使用自己的协议。这些协议通常基于HTTP。

NodeMCU需要定期检查其公共IP地址并发送这样的请求以更新ip地址(对于无IP)


http:// username:password@dynupdate.no-ip.com/nic/update?hostname = mytest.testdomain.com&myip = 1.2.3.4


完整规格:https://www.noip.com/integrate/request

注意:从您的问题来看,您似乎已经设置了端口转发,并且只需要考虑每次更改您的家庭IP即可时不时。如果不是这种情况,则此答案将不足。

评论


不,这个问题绝对没有表明已经建立了端口转发,也没有任何迹象表明发布者甚至意识到有必要这样做。他们只描述了在同一网络中的控制。实际上打开防火墙不是一个好选择。

–克里斯·斯特拉顿(Chris Stratton)
18年2月24日在7:46

#2 楼

我有一个解决问题的想法。您可以定期检查外部IP并在ESP8266更改后将其发送给您自己,这样您每次都可以获得最新信息。您还可以扩展用于控制设备的应用程序,以便它检查电子邮件,并在检测到带有特定主题(例如“分配的新IP地址”)的电子邮件时,可以解析电子邮件并从消息正文中提取新的IP地址。我在python和纯Linux shell脚本中做了类似的事情。

评论


这是动态DNS服务的工作方式,仅通过比电子邮件更有效的渠道进行;具体来说,他们发送消息以更新实际的DNS服务器。

–克里斯·斯特拉顿(Chris Stratton)
18-2-24在7:47