我们是一家小型创业公司,我们的一个基本要求是使我们的核心系统(运行在基本的Linux发行版上)的云访问为我们的客户提供服务,这些客户通常使用没有公共IP地址的互联网连接。 homekit运行一个基本的linux发行版是否有开放源代码软件包,可以使位于私有IP后面的设备连接到云服务器,而云服务器根据令牌将每个传入请求的请求路由到特定设备
好吧,让我重新说一下这个问题我需要做什么使我的客户能够访问他们家中embedded式设备上运行的小型networking服务器(以最简单的方式)他们将访问这个networking服务器(运行在80端口或任何自定义端口,我可以configuration)
他们在家中的互联网连接可能有也可能没有公共IP。 而且我不能要求他们摆弄港口转运等
要求他们在访问这个networking服务器之前打开一个VPN连接将会消除整个用户的友好性
一个可能的解决scheme是,因为客户端基地预计很小,我可以configuration每个networking服务器在一个唯一的端口号(例如3400-3500),我用我自己的专用服务器作为经纪人(例如请求来说myserver .com在端口3400被路由到客户端1,3401到客户端2等等
问题:不是很优雅,还需要弄清楚让他们的家庭服务器以某种方式连接到我的专用服务器
任何VPN解决scheme都可以。 OpenVPN从客户端连接到服务器(到云)将是很好的解决scheme,您可以轻松调整encryption级别等。是的,你也可以过滤谁连接到你的云,如果你想。 只要不要忘记阻止服务器端的客户端间stream量!
由于您能够与客户进行沟通,您可以自由使用和请求路由。
PS不知道OpenVPN是否适合您的设置和h / w限制。
一个完整的解决scheme,不需要客户的行动,将使用最less的移动部分需要反向连接和连接代理。
您可以将连接结束,并将“homekit”或“家庭服务器”手机置于家中(您的服务器)。 这称为反向隧道,可用于绕过防火墙和dynamicIP; 并且可以使用现成的开放源代码SSH来实现less量的服务器。
如果你想知道SSH隧道如何工作,我推荐https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work 。
一旦这些家庭服务器连接,传输他们的内部networkingIP(在这里需要一些自定义粘合代码,以及某种方式来确保你的不信任的客户端不会彼此间),连接代理(你的门户),并服务他们的内部知识产权(希望只有他们可以访问)。
我仍然试图围绕你的问题,但听起来非常类似于物联网用例。 Azure有一个IOT Hub,可以让设备从远程位置发送和接收命令。 连接在客户端发起,因此防火墙和NAT不会中断连接。 这可能会解决您的问题,但是您需要将客户端设备从Web服务器更改为侦听集线器的应用程序,然后在云端提供该接口。
https://azure.microsoft.com/en-us/services/iot-hub/
我是MS员工,这就是为什么Azure具体的答案。 这是我所知道的。