使家庭服务器可访问(IPv4,IPv6,DS-Lite)

kni*_*nap 5 networking ipv4 ipv6 dyndns

我计划向客户发送一个"家庭服务器"类型的设备,与他们的(Android或iPhone)智能手机通信.问题在于,根据其互联网服务提供商,客户没有外部可达的IPv4地址(DS-lite隧道),因此智能手机不能仅使用IPv4 DNS记录来查找服务器.

我能想到的替代方案:

  • 使服务器使用IPv6 DynDNS服务,并使IPv6优先于智能手机上的IPv4.由于解决方案应该在客户不必注册DynDNS服务的情况下工作,因此我没有找到允许我这样做的任何服务.

  • 设置我自己的"目录服务器",以便主服务器按间隔注册它的序列号 - 类似于DynDNS,但在应用层上通过HTTPS.然后,客户端只需在应用程序中输入序列号即可找到服务器.由于身份验证/加密要求,此解决方案比我喜欢的更难实现.

关于如何使家庭服务器可达的任何其他想法?我真的想避免运行自己的"云服务".也许某种类型的点对点网络发现?

[更新:]这是我基本上寻找的:

Home server                            Relay         DynDNS        Client
|                                      |             |             |
|-------- open tunnel to port 80 ----->|             |             |
|<-success, listening on 192.0.2.1:80 -|             |             |
|                                      |             |             |
|----- Register "my.ddns.net" ---------------------->|             |
|<------------ "my.ddns.net" is now 192.0.2.1 -------|             |
|                                      |             |             |
|                                      |<- GET http://my.ddns.net -|
|<------- GET http://my.ddns.net   ----|             |             |
|--- HTTP response ------------------->|             |             |
|                                      |----- HTTP response ------>|
Run Code Online (Sandbox Code Playgroud)

San*_*ann 2

从互联网连接到家里的服务器很困难。IPv6 尚未在所有地方可用,并且使用 IPv4,您并不总是有可用的公共地址(具有多个 NAT 层或 DS-Lite)。

当今唯一可靠的解决方案是拥有一个可公开访问的服务器作为集合点,并让家庭盒子维护该服务器的永久集合。然后,移动设备(也可能位于 NAT 之后)可以通过服务器到达家庭盒子或设置 STUN/TURN 类型的连接。