一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种远程桌面连接方法和连接系统与流程

2022-02-20 00:42:56 来源:中国专利 TAG:


1.本发明属于远程桌面技术领域,具体涉及一种远程桌面连接方法和连接系统。


背景技术:

2.在远程办公、远程维护等应用场景下,需要在通过远程桌面来连接远程电脑。现有的远程桌面主要采用的录制屏幕的方式,即用户在两台机器上安装远程桌面软件,将被远程的机器录制屏幕传输到用户操作的电脑上并展示,中间需要经过软件提供商的服务器,安全上无法保障。并且这种方式要求远程电脑和用户操作的电脑都连接到internet网络,但很多情况下远程电脑是处于局域网内部,无法连接到internet,这样就无法使用现有的远程桌面工具。


技术实现要素:

3.发明目的:针对现有技术中存在的问题,本发明提供了一种远程桌面的连接方法,该方法能够实现远程连接局域网内部电脑。
4.技术方案:本发明一方面提供了一种远程桌面连接方法,包括:
5.s11、客户端向服务器发送远程桌面连接请求;所述远程桌面连接请求中包含远程桌面端用户名、密码;
6.s12、服务器接收所述远程桌面连接请求并进行鉴权;鉴权通过后向客户端发送连接应答消息;
7.分配服务器端口号,并向远程桌面端发送启动指令;建立远程桌面端用户名与分配的服务器端口号对应关系;所述远程桌面端上运行远程桌面应用程序;
8.s13、远程桌面端接收所述启动指令,启动反向代理,建立与服务器的反向代理连接,反向代理连接端口为步骤s12中分配的服务器端口号;
9.s14、客户端启动远程连接客户端工具,与服务器建立连接,向服务器发送远程桌面控制指令,服务器通过步骤s13建立的反向代理连接向远程桌面端转发所述控制指令;
10.s15、远程桌面端接收并执行所述控制指令,将结果经反向代理连接发送至服务器,服务器将结果转发至客户端。
11.进一步地,上述连接方法还包括:
12.s21、客户端向服务器发送远程桌面关闭请求;所述远程桌面关闭请求中包括远程桌面端用户名;
13.s22、服务器根据远程桌面端用户名查找对应的服务器端口号,释放所述服务器端口号,清除远程桌面端用户名与分配的服务器端口号对应关系;向远程桌面端发送关闭指令;
14.s23、远程桌面端接收所述关闭指令,停止反向代理,断开已建立的反向代理连接。
15.为了保证远程连接的安全,所述步骤s12中还包括:鉴权通过后服务器生成连接密钥,通过连接应答消息和启动指令分别发送给客户端和远程桌面端;
16.所述步骤s14中,客户端先使用连接密钥对远程桌面控制指令加密,再向服务器发送加密后的远程桌面控制指令;
17.所述步骤s15中,远程桌面端对加密后的远程桌面控制指令先进行解密,再执行;执行结果加密后经反向代理连接发送至服务器,服务器再转发至客户端;由客户端进行解密后展示。
18.进一步地,所述服务器预设端口分配列表,所述端口分配列表包括至少一个端口号、每个端口号的使用状态、以及使用状态为“已使用”的端口号的用户名;所述步骤s12鉴权通过后,从端口分配列表中选择使用状态为“未使用”的端口号作为分配的服务器端口号,并将选择的端口号使用状态设置为“已使用”,用户名设置为远程桌面连接请求中的用户名。
19.进一步地,所述步骤s3中远程桌面端与服务器的反向代理连接采用tcp协议。
20.进一步地,所述步骤s2中鉴权包括:验证用户名和密码是否正确,如不正确鉴权不通过;
21.验证用户名是否有已分配的服务器端口号,如有,鉴权不通过
22.另一方面,本发明提供了实现上述远程桌面连接方法的连接系统,包括:客户端、服务器和远程桌面端;所述服务器包括服务器控制模块和反向代理服务模块;所述远程桌面端包括远程桌面控制模块和远程桌面服务模块;
23.所述客户端用于提供用户操作界面,根据用户的输入向服务器控制模块发送远程桌面连接请求;所述远程桌面连接请求中包含远程桌面端用户名、密码;当服务器和远程桌面端间的反向代理连接建立后,客户端启动远程连接客户端工具,与反向代理服务模块建立连接,向反向代理服务模块发送远程桌面控制指令;
24.所述服务器控制模块用于接收客户端发送的远程桌面连接请求并进行鉴权;鉴权通过后向客户端发送连接应答消息,分配服务器端口号,并向远程桌面控制模块发送启动指令;建立远程桌面端用户名与分配的服务器端口号对应关系;
25.所述反向代理服务模块用于接收远程桌面控制指令,并通过反向代理连接向远程桌面控制模块转发;转发远程桌面端执行远程桌面控制指令后的结果到客户端;
26.所述远程桌面控制模块用于接收服务器控制模块发送的启动指令,启动反向代理,建立与反向代理服务模块的反向代理连接,反向代理连接端口为服务器控制模块分配的服务器端口号;向远程桌面服务模块的监听端口透传远程桌面控制指令;
27.远程桌面服务模块安装有远程桌面应用程序,用于局域网内的电脑远程控制。
28.进一步地,所述服务器控制模块还用于:当客户端向服务器发送远程桌面关闭请求时,服务器控制模块根据远程桌面关闭请求中的远程桌面端用户名查找对应的服务器端口号,释放所述服务器端口号,清除远程桌面端用户名与分配的服务器端口号对应关系;向远程桌面服务模块发送关闭指令;
29.所述远程桌面服务模块还用于:接收所述关闭指令,停止反向代理,断开已建立的反向代理连接。
30.进一步地,所述服务器控制模块还包括连接密钥生成模块,用于在鉴权通过后生成连接密钥;所述连接密钥通过连接应答消息和启动指令分别发送给客户端和远程桌面控制模块;
31.所述客户端还包括指令加密模块和结果解密模块;所述指令加密模块用于使用连接密钥对远程桌面控制指令加密;所述结果解密模块用于对控制指令执行结果进行解密;
32.所述远程桌面控制模块还包括指令解密模块和结果加密模块;所述指令解密模块用于对加密后的远程桌面控制指令解密;所述结果加密模块用于对控制指令执行结果进行加密。
33.进一步地,所述服务器控制模块还包括端口分配列表管理模块,用于管理预设的端口分配列表,所述端口分配列表包括至少一个端口号、每个端口号的使用状态、以及使用状态为“已使用”的端口号的用户名;所述管理包括分配、释放、查找;
34.所述分配为:从端口分配列表中选择使用状态为“未使用”的端口号作为分配的服务器端口号,并将选择的端口号使用状态设置为“已使用”,用户名设置为远程桌面连接请求中的用户名;
35.所述释放为:将使用状态为“已使用”的端口号使用状态设置为“未使用”,用户名设置为空;
36.所述查找为:根据用户名查找使用状态为“已使用”的端口号。
37.有益效果:本发明公开的远程桌面连接方法和连接系统具有以下优点:1、远端电脑处于局域网内部,不具备连接公网的能量,一旦端口远程桌面端与反向代理模块间的反向代理连接,则外部无法通过任何方式连接到局域网内部的电脑,使得安全性更高;2、客户端与远程桌面端的交互仅需服务器一次中转,而远程桌面端与服务器是处于同一局域网内,这样使得数据的传输效率更高。
附图说明
38.图1为本发明公开远程桌面连接方法应用场景示意图;
39.图2为实施例1中远程桌面连接方法的流程图;
40.图3为实施例1中远程桌面连接关闭的流程图;
41.图4为实施例1中远程桌面连接系统的组成示意图;
42.图5为实施例2中远程桌面连接方法的流程图;
43.图6为实施例2中远程桌面连接系统的组成示意图。
具体实施方式
44.下面结合附图和具体实施方式,进一步阐明本发明。
45.实施例1:
46.本实施例提供了一种远程桌面连接方法,如图1所示,pc1、pc2、pc3为办公电脑,均处于局域网内部,且没有访问公网的权限。局域网之外的客户端c1、c2、c3要通过远程桌面连接pc1、pc2、pc3需要通过局域网内部的服务器,服务器200需要具备访问公网的权限,具体的步骤如图2所示,包括:
47.s11、用户通过客户端100向服务器200发送远程桌面连接请求;所述远程桌面连接请求中包含远程桌面端300的用户名、密码;
48.本实施例中,服务器提供http接口,客户端采用http请求来发送远程桌面连接请求。
49.s12、服务器200接收所述远程桌面连接请求并进行鉴权;
50.鉴权通过后向客户端100发送连接应答消息;
51.分配服务器端口号,并向远程桌面端300发送启动指令;建立远程桌面端用户名与分配的服务器端口号对应关系;所述远程桌面端300上运行远程桌面应用程序;本实施例中,服务器采用建立socket连接的方式向远程桌面端300发送启动指令。
52.为了便于管理,服务器预设端口分配列表,所述端口分配列表包括至少一个端口号、每个端口号的使用状态、以及使用状态为“已使用”的端口号的用户名;表的形式如表1所示:
53.表1
[0054][0055]
鉴权时,首先验证用户名和密码是否正确,如不正确鉴权不通过;其次验证用户名是否有已分配的服务器端口号,如有,鉴权不通过。如客户端c1想要远程连接到pc1,其发送的远程桌面连接请求中用户名为pc1,服务器鉴权时查找到pc1有已分配的端口10000了,即已有客户端远程连接到pc1,因此鉴权不通过。如客户端c1要远程连接pc2,此时pc3没有已分配的端口号,鉴权通过;从端口分配列表中选择使用状态为“未使用”的端口号作为分配的服务器端口号,并将选择的端口号使用状态设置为“已使用”,用户名设置为远程桌面连接请求中的用户名。假设采用随机选择,将端口号10003分配给客户端c1来远程连接pc3,端口号为10003的记录中,“是否使用”字段修改为1,用户名字段设置为pc3。采用这样的方式能够保证服务器上端口号与远程桌面端的一一对应,防止不同客户端同时远程连接到同一远端电脑时发生冲突。
[0056]
s13、远程桌面端接收所述启动指令,启动反向代理,建立与服务器的反向代理连接,反向代理连接端口为步骤s12中分配的服务器端口号;
[0057]
远程桌面端与服务器的反向代理连接采用tcp协议。
[0058]
s14、客户端启动远程连接客户端工具,与服务器建立连接,向服务器发送远程桌面控制指令,服务器通过步骤s13建立的反向代理连接向远程桌面端转发所述控制指令;
[0059]
s15、远程桌面端接收并执行所述控制指令,将结果经反向代理连接发送至服务器,服务器将结果转发至客户端。
[0060]
当用户要结束远程桌面连接时,如图3所示,流程如下:
[0061]
s21、用户通过客户端向服务器发送远程桌面关闭请求;所述远程桌面关闭请求中包括远程桌面端用户名;
[0062]
s22、服务器根据远程桌面端用户名查找对应的服务器端口号,释放所述服务器端
口号,清除远程桌面端用户名与分配的服务器端口号对应关系;向远程桌面端发送关闭指令;
[0063]
具体通过端口分配列表的“查找”、“释放”操作来完成;查找为:根据用户名查找使用状态为“已使用”的端口号;释放为:将使用状态为“已使用”的端口号使用状态设置为“未使用”,用户名设置为空;
[0064]
s23、远程桌面端接收所述关闭指令,停止反向代理,断开已建立的反向代理连接。
[0065]
本实施例实现了客户端远程连接权限受限的远端电脑,远端电脑无需具有连接公网的权限,只需要局域网中一台具备连接公网的服务器即可,通过反向代理模式,使远端电脑主动连接公网服务器,与公网服务器之间建立反向连接通道,以此穿透局域网,实现远程桌面连接的目的。
[0066]
实现上述上述远程桌面连接方法的连接系统,如图4所示,包括:客户端100、服务器200和远程桌面端300;所述服务器200包括服务器控制模块201和反向代理服务模块202;所述远程桌面端300包括远程桌面控制模块301和远程桌面服务模块302;
[0067]
所述客户端100用于提供用户操作界面,根据用户的输入向服务器控制模块201发送远程桌面连接请求;所述远程桌面连接请求中包含远程桌面端用户名、密码;当服务器200和远程桌面端300间的反向代理连接建立后,客户端100启动远程连接客户端工具,与反向代理服务模块202建立连接,向反向代理服务模块202发送远程桌面控制指令;
[0068]
所述服务器控制模块201用于接收客户端100发送的远程桌面连接请求并进行鉴权;鉴权通过后向客户端100发送连接应答消息,分配服务器端口号,并向远程桌面控制模块301发送启动指令;建立远程桌面端用户名与分配的服务器端口号对应关系;
[0069]
服务器控制模块201中包括端口分配列表管理模块2011,用于管理预设的端口分配列表,所述端口分配列表包括至少一个端口号、每个端口号的使用状态、以及使用状态为“已使用”的端口号的用户名;所述管理包括分配、释放、查找;
[0070]
所述反向代理服务模块202用于接收远程桌面控制指令,并通过反向代理连接向远程桌面控制模块301转发;转发远程桌面端执行远程桌面控制指令后的结果到客户端;反向代理服务可以使用frp或rproxy等开源服务搭建。
[0071]
所述远程桌面控制模块301用于接收服务器控制模块201发送的启动指令,启动反向代理,建立与反向代理服务模块202的反向代理连接,反向代理连接端口为服务器控制模块201分配的服务器端口号;向远程桌面服务模块301的监听端口透传远程桌面控制指令;
[0072]
远程桌面服务模块301安装有远程桌面应用程序,用于局域网内的电脑远程控制。本实施例中采用开源的远程桌面应用程序tightvnc,使用tightvnc可以实现在局域网内的其他机器通过vnc客户端远程到这台安装tightvnc的机器上。远程桌面服务模块301的监听端口可以配置,本实施例中设置为5900端口,使用vnc远程到这台机器,需要输入这台机器的ip地址和5900端口。
[0073]
当用户要结束远程桌面连接时,服务器控制模块201还用于:当客户端向服务器发送远程桌面关闭请求时,服务器控制模块根据远程桌面关闭请求中的远程桌面端用户名查找对应的服务器端口号,释放所述服务器端口号,清除远程桌面端用户名与分配的服务器端口号对应关系;向远程桌面服务模块发送关闭指令;
[0074]
远程桌面服务模块301还用于:接收所述关闭指令,停止反向代理,断开已建立的
反向代理连接。
[0075]
实施例2:
[0076]
为了保证远程连接的安全,本实施例远程桌面连接采用加密的方式。本实施例与实施例1的区别是:
[0077]
步骤s12中还包括:鉴权通过后服务器生成连接密钥,通过连接应答消息和启动指令分别发送给客户端和远程桌面端;
[0078]
步骤s14中,客户端先使用连接密钥对远程桌面控制指令加密,再向服务器发送加密后的远程桌面控制指令;
[0079]
步骤s15中,远程桌面端对加密后的远程桌面控制指令先进行解密,再执行;执行结果加密后经反向代理连接发送至服务器,服务器再转发至客户端;由客户端进行解密后展示。
[0080]
具体的流程如图5所示。
[0081]
实现上述远程桌面连接的连接系统如图6所示,其与实施例1中连接系统的区别是:
[0082]
服务器控制模块201还包括连接密钥生成模块2012,用于在鉴权通过后生成连接密钥;所述连接密钥通过连接应答消息和启动指令分别发送给客户端100和远程桌面控制模块301;
[0083]
客户端100还包括指令加密模块101和结果解密模块102;指令加密模块101用于使用连接密钥对远程桌面控制指令加密;结果解密模块102用于对控制指令执行结果进行解密;
[0084]
远程桌面控制模块301还包括指令解密模块3011和结果加密模块3012;指令解密模块3011用于对加密后的远程桌面控制指令解密;结果加密模块3012用于对控制指令执行结果进行加密。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献