Notifications 从云服务器向LAN上的设备发送通知

Notifications 从云服务器向LAN上的设备发送通知,notifications,server,Notifications,Server,我正在尝试执行以下操作: 我在局域网外有自己的服务器 我的局域网上有多个客户端(在路由器后面) 我希望在客户机向服务器“注册”之后,服务器将一些事件通知特定的客户机。例如,客户端可以指示打开了哪个端口,并发送IP地址 我看到的所有问题都与谷歌云等云服务相关,但我对此不感兴趣 我面临的问题是: 服务器将看到路由器的IP而不是设备的IP。假设我在客户端上打开端口5555,服务器在端口5555向路由器的IP发送一条消息,路由器会将该消息转发到所有设备/没有设备/或仅转发到具有端口转发的IP吗

我正在尝试执行以下操作:

  • 我在局域网外有自己的服务器
  • 我的局域网上有多个客户端(在路由器后面)
我希望在客户机向服务器“注册”之后,服务器将一些事件通知特定的客户机。例如,客户端可以指示打开了哪个端口,并发送IP地址

我看到的所有问题都与谷歌云等云服务相关,但我对此不感兴趣

我面临的问题是:

  • 服务器将看到路由器的IP而不是设备的IP。假设我在客户端上打开端口5555,服务器在端口5555向路由器的IP发送一条消息,路由器会将该消息转发到所有设备/没有设备/或仅转发到具有端口转发的IP吗
我很困惑,因为: -如果无法发送到特定设备,多个设备如何浏览internet并使用telnet/ftp。。。?不知何故,数据包找到了正确的设备

我知道我遗漏了一些东西,但我不知道为了提出正确的技术问题我遗漏了什么

问题是:


您知道如何在客户机向服务器注册后将特定消息从服务器发送到LAN上的多个客户机之一吗?

您的LAN已连接到外部网络,并且最有可能进行NAT,以便内部IP地址与外部网络上的IP地址不同

广泛使用的NAT形式不仅转换IP地址,还转换端口号。这允许许多内部LAN设备在外部网络上共享同一个IP。家庭路由器通常使用这种方法

当内部网络上的设备连接时。路由器会记住使用了哪个外部端口,并将任何返回的流量定向到正确的内部设备。这就是运行telnet/ftp等的多个设备如何访问internet以回答您的第一个问题

但是,如果没有帮助,进入LAN的新连接无法路由到特定的内部设备。路由器不知道在哪里发送它以前没有记住的请求

但是,大多数路由器都有一个称为端口转发的功能,您可以指定如何处理来自外部网络的特定端口的请求。如果您设置端口转发,并以某种方式将该信息提供给局域网外的服务器。它将能够向这些端口发送请求,路由器将其传递到您预先配置的匹配的内部IP和端口号


如果您认为您没有将NAT与端口转换一起使用(它有许多不同的名称),请给出建议。然后,其他人将能够进一步建议

比如说两台设备同时访问互联网。那么路由器会这样做吗?(源端口:10000,目标端口:80)用于设备1,而(源端口:10001:目标端口:80)用于设备2,服务器回复端口10001和端口10002?源端口是路由器的端口,目标端口是网页端口。是的,没错。路由器期待响应并将其发送到相应的内部设备。如果外部服务器启动通信,则路由器不期望通信量,这就是为什么需要预先配置端口转发以帮助解决此问题。