【问题标题】:communication between web host server and home server网络主机服务器和家庭服务器之间的通信
【发布时间】:2016-08-26 07:10:19
【问题描述】:

我有一个托管在外部服务器上的 Web 应用程序。我会在我的家庭服务器和 Web 应用程序之间创建一个通信。 我是这么想的:

  • 我的家庭服务器将其 ip 发送到 Web 应用程序
  • Web 应用程序将数据发送到主服务器
  • 我的家庭服务器发回一些数据
  • 我想在 WebApp 和家庭服务器之间实现 P2P 通信

  • 如果通信加密会更好

  • 我不想使用动态 dns

有什么可以实现的吗?

【问题讨论】:

  • “有什么可以实现的吗?” - 是的,有很多方法。是/否问题对于 Stack Overflow 并不是特别有用,而且这个问题有太多可能的答案无法回答。
  • “我不想使用动态 dns” - 您不必这样做,但您可能需要处理 NAT 打孔或在您的设备上打开一个端口家庭防火墙(路由器)。

标签: web-services networking encryption network-programming communication


【解决方案1】:
  • 有几种类型的 IP。它可以是“灰色”和“白色”。 “灰色”表示无法通过它访问您的计算机。 “白色”IP 可以直接访问。还有动态IP 随着时间的推移而变化。这一切都取决于提供者。 您可能拥有“白色动态”IP,但这种情况非常罕见 供提供商做。
  • 更容易连接到服务器,因为它 始终拥有“白色”永久 IP。
  • TCP/IP 已经完成了大部分工作。您只需创建 tcp 连接并保持不变。您只需考虑发送数据。

我对你的建议是创建这样的东西:

  1. 家庭服务器连接到 WebApp
  2. 家庭服务器请求一些数据,WebApp 发回数据
  3. 主服务器发送包含数据的请求,服务器响应一切正常

所以你有客户端-服务器模型。客户端总是只做请求,服务器只做响应。而且他们不会切换。更容易维护。

有一种常见的技术可以做到这一点,它也包括加密。 您应该使用 HTTPS 协议。 Https 将完成所有加密(并安全地交换密钥)您只需担心证书(有一些方法可以不购买证书但自己签名。这完全是另一个话题)

因此,您将从您的家庭服务器 PC(客户端)发送 https 请求并从服务器(webApp)获取响应。


当你在 Python 上写作时,你会发现这个答案对你很有帮助: HTTPS request in Python

【讨论】:

  • 感谢您的意见。我的目标是实现 webapp 和家庭服务器之间的 P2P 通信(对我的项目来说,简单的响应是不够的)。我在python中找到了这个包来实现:pypi.python.org/pypi/pyp2p,但它是一个实验版本......
  • 您应该编辑您的问题以明确您的任务。响应可以包含文件。 Http非常灵活。那么你的观点是什么?你想达到什么目标?您可以创建加密流。 pyp2p 的问题是在没有预共享密钥的情况下实现加密会更加困难
猜你喜欢
  • 2021-05-30
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2015-08-25
  • 2016-05-11
  • 1970-01-01
相关资源
最近更新 更多