我想在我的周末小屋中部署一个 Raspberry Pi。Raspberry Pi 用于记录温度并将它们发送到具有固定 IP 的远程服务器,保存数据并将其显示在一个简单的网站上。
但是,可能会出现我想在 Raspberry Pi 上更改某些内容的情况。例如系统更新或将数据发送到服务器或其他任何程序的更改。
使用建议的设置,我将无法从 LAN 外部连接到 Raspberry Pi。
注意:我不想改变网络,现有的路由器不具备端口转发、dynDNS 或 VPN 的能力。
我最近阅读了 UDP 打孔。基本思想是,客户端将 UDP 包发送到已知服务器地址(即启用公共 IP 或 dynDNS)。想要连接到客户端 A 的客户端 B 向服务器询问客户端 A 的公共 IP 和端口号。
然后它可以直接连接到客户端 A 的公共 IP 和动态端口。因为客户端 A 首先通过现在使用的端口连接到服务器,所以 NAT 会将包转发到客户端 A。
我希望我或多或少地正确总结了这个想法……
这一切听起来不错,但问题是,这不能与 TCP 连接一起工作,因为路由器能够“理解”TCP 连接的握手,如果它没有正确建立,它就不会转发包。
那么,如何才能打开从客户端 B 到客户端 A 的 SSH 会话,而客户端 A 不会坐在带有 dynDNS、固定公共 IP 或端口转发功能的路由器后面?使用具有公共、固定 IP 或域名的中央服务器可能会很困难。