我正在开发一款产品,让用户能够在家中运行属于大型网络的服务。此服务需要由在云中(在 VPS 上)运行的协调服务定期联系。为此实施的机制依赖于用户面向互联网的路由器上的正常端口转发,但也需要一种可靠的方式被发现:输入 DDNS。
我想实现的是一种 DDNS 服务,它可以通过用户上运行的服务轻松配置(认为该服务只具有 DDNS 更新客户端的附加功能)。(您可能会问,为什么服务不只是动态地保持属性“externalIP”更新并通知协调服务,但出于多种原因,最好将该配置保持静态,并在用户防火墙后面为该服务提供永久的联系人别名)
在服务器端,我希望找到一个可以在 VPS 上轻松运行并提供 DDNS 的解决方案(例如someuniqueid.nodes.mydomain.com
(其中mydomain.com
归我所有并指向 VPS)。
该解决方案应可靠地支持潜在的数千个客户端(唯一 ID)。(为了提高可靠性,协调、DDNS 和辅助服务可能会在 HA 配置中使用 k8s 进行扩展)。
对于此问题有什么可能有效的解决方案吗?
答案1
假设
这依赖于普通的在用户面向互联网的路由器上进行端口转发
对于大多数用户来说,无需“专家”干预就能可靠地运行,这可能是有缺陷的。
典型的解决方案https://en.m.wikipedia.org/wiki/Universal_Plug_and_Play并未得到普遍支持。
除非你期望所有用户都会总是在“家庭”网络上,当他们无法自动设置端口转发时,他们就可以手动设置端口转发,您真的应该重新考虑您的设计。
通常,您会看到客户端使用中央服务器/服务(通过默认 https 端口上的 https)而不是对等连接,因此您无需分配 DNS 名称来查找您的用户。您的用户将找到您(或者更确切地说是您的服务器)
这使得您的问题和预期的解决方案成为一条您不应该走的路。