更新时间:2023/7/28 9:52:22  文章录入:admin  责任编辑:admin
在各种云计算平台中,都会提供一个连接虚拟机控制台的URL地址,有些远程控制台地址是以noVNC来提供访问的。noVNC可以让用户直接使用浏览器很方便地操作虚机,无需再安装另外的程序。但有的URL地址直接就暴露了虚机所在的节点IP,这样就可能直接影响云平台的安全性。为了不直接暴露虚机节点信息,就需要我们对URL地址、noVNC返回的页面信息进行拦截转换。获取noVNC地址1.首先客户端通过请求API的方式获取noVNC可访问的URL。2.中间服务从noVNC服务器列表中获取对应的noVNC地址。3.中间服务将获取到noVNC地址进行截取改造,保证新的URL里没有noVNC服务器的IP和端口号。4.根据本次请求生成一个新的Token,并将生成的Token集成到新的URL中。5.将Token和原来URL对应关系保存在中间层服务的转发路由信息中,包括HTML的URL和WebSockets的URL对应关系,并返回新生成的URL。6.客户获取到了新URL,这个新的URL是经过基于中间层微服务进行过转义过的URL。转发noVNC地址1.客户端根据新的URL,在浏览器中输入新的URL地址。2.浏览器会根据新URL请求中间服务,中间服务修改URL请求的HTTP中header参数为Host和Origin信息。3.修改Header信息之后,根据路由中的信息转发HTTPS或者WebSocket请求到noVNC服务器上。4.中间层微服务接受到noVNC服务器返回HTML信息之后,替换掉HTML里包含服务器节点地址和端口号。5.中间层微服务处理好信息之后,把信息返回给客户端浏览器。效果转发前noVNC地址:转发后noVNC地址: 打印本文 打印本文  关闭窗口 关闭窗口