远程 TCP 服务器是否只能在公共 IP 地址上运行

远程 TCP 服务器是否只能在公共 IP 地址上运行

我使用 AT 命令将 GSM (Uni4 SIM800) 模块连接到 Raspberry-pi-3B 模块以运行简单的 TCP 服务器,并使用另一对 GSM 和 Rospberry-pi 来运行 TCP 客户端。现在电信运营商 (ISP) 将为 GSM 模块分配 IP 地址,那么我的问题是

  1. 那些分配的 IP 地址是公共的吗?
  2. 如果是,并且知道服务器 IP 地址,我的客户端可以连接到该服务器吗?
  3. 如果分配的 IP 地址是私有的,我的客户端可以连接到服务器吗?如何连接?
  4. 当服务器的 IP 地址定期变化时,是否有任何方法可以在启动 TCP 连接序列之前从客户端找出服务器的 IP 地址(例如主机扫描或使用服务器已知的 MAC/IMEI 地址)。

答案1

  1. 有可能,但不太可能。
  2. 是的,但请参阅 1。
  3. 不太可能。如果它们在同一个网络中,则有可能,除非提供商阻止它。
  4. 服务器必须使用类似 DynDNS 的东西来公开其地址。

如果您有一个私人地址,最好的选择是连接到 VPN 服务器并接受来自那里的连接。

相关内容