一种远程控制的方法和系统与流程

文档序号:16246338发布日期:2018-12-11 23:37阅读:214来源:国知局
一种远程控制的方法和系统与流程

本发明涉及数据通信技术领域,特别涉及一种远程控制的方法和系统。

背景技术

随着互联网技术的不断发展,远程控制技术也随之快速发展。主控端(如个人计算机、智能手机等)可以利用远程控制技术,控制被控端(如个人计算机、智能手机等)进行各种操作,例如启动某应用程序、编辑某文件等。

为了进行远程控制,主控端和被控端可以预先安装对应版本的远程控制程序,例如ssh(secureshell,安全外壳)、mstsc(microsofttelnetscreencontrol,微软远程桌面控制)等远程控制程序。以ssh远程控制程序为例,当主控端准备控制被控端启动本地安装的某视频播放程序时,主控端的ssh远程控制程序可以通过被控端的公网ip(internetprotocol,网络互连协议)地址,向被控端的ssh远程控制程序发送相应的控制命令,这样,被控端的ssh远程控制程序可以执行上述控制命令,控制被控端启动上述视频播放程序。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

当被控端的ip地址为私网ip地址时,主控端无法通过私网ip地址与被控端进行通信,导致主控端的远程控制程序无法向被控端的远程控制程序发送控制命令,故而当被控端的ip地址为私网ip地址时,上述远程控制程序无法实现远程控制。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种远程控制的方法和系统。所述技术方案如下:

第一方面,提供了一种远程控制的方法,所述方法包括:

主控端代理模块接收由主控端远控模块生成的对被控端的控制命令,获取由代理服务器的中间代理模块预先生成的通道标识;

所述主控端代理模块通过预先建立的所述主控端与所述代理服务器的第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块;

所述中间代理模块根据所述通道标识,确定预先建立的所述被控端与所述代理服务器的第二数据通道,并通过所述第二数据通道将所述控制命令发送至被控端代理模块;

所述被控端代理模块将所述控制命令发送至所述被控端远控模块;

所述被控端远控模块执行所述控制命令。

进一步的,所述代理服务器具有公网ip地址;所述主控端代理模块获取所述通道标识之前,还包括:

所述被控端代理模块基于所述公网ip地址,预先与所述中间代理模块建立所述第二数据通道;

所述中间代理模块根据所述第二数据通道生成对应的所述通道标识,并将所述通道标识发送至所述主控端代理模块。

进一步的,所述主控端代理模块接收由主控端远控模块生成的对被控端的控制命令,包括:

所述主控端远控模块基于所述主控端代理模块的ip地址,向所述主控端代理模块发送携带有所述控制命令的远程控制请求;

所述主控端代理模块接收所述远程控制请求,提取所述控制命令。

进一步的,所述代理服务器具有公网ip地址;所述主控端代理模块通过预先建立的所述主控端与所述代理服务器的第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块,包括:

所述主控端代理模块基于所述公网ip地址,与所述中间代理模块建立所述第一数据通道;

所述主控端代理模块通过所述第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块。

进一步的,所述被控端远控模块执行所述控制命令之后,还包括:

所述被控端代理模块通过所述第二数据通道,将接收的由所述被控端远控模块反馈的执行结果发送至所述中间代理模块;

所述中间代理模块通过所述第一数据通道将所述执行结果发送至所述主控端代理模块;

所述主控端代理模块将所述执行结果发送至所述主控端远控模块。

第二方面,提供了一种远程控制的系统,所述系统包括主控端、被控端以及代理服务器,所述主控端包括主控端远控模块、主控端代理模块,所述被控端包括被控端远控模块、被控端代理模块,所述代理服务器包括中间代理模块,其中:

所述主控端代理模块,用于接收由所述主控端远控模块生成的对所述被控端的控制命令,获取由所述中间代理模块预先生成的通道标识;

所述主控端代理模块,还用于通过预先建立的所述主控端与所述代理服务器的第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块;

所述中间代理模块,用于根据所述通道标识,确定预先建立的所述被控端与所述代理服务器的第二数据通道,并通过所述第二数据通道将所述控制命令发送至所述被控端代理模块;

所述被控端代理模块,用于将所述控制命令发送至所述被控端远控模块;

所述被控端远控模块,用于执行所述控制命令。

进一步的,所述代理服务器具有公网ip地址;

所述被控端代理模块还用于:

基于所述公网ip地址,预先与所述中间代理模块建立所述第二数据通道;

所述中间代理模块,还用于:

根据所述第二数据通道生成对应的所述通道标识,并将所述通道标识发送至所述主控端代理模块。

进一步的,所述主控端远控模块还用于:

基于所述主控端代理模块的ip地址,向所述主控端代理模块发送携带有所述控制命令的远程控制请求;

所述主控端代理模块,还用于:

接收所述远程控制请求,提取所述控制命令。

进一步的,所述代理服务器具有公网ip地址;

所述主控端代理模块还用于:

基于所述公网ip地址,与所述中间代理模块建立所述第一数据通道;

通过所述第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块。

进一步的,所述被控端代理模块,还用于通过所述第二数据通道,将接收的由所述被控端远控模块反馈的执行结果发送至所述中间代理模块;

所述中间代理模块,还用于通过所述第一数据通道将所述执行结果发送至所述主控端代理模块;

所述主控端代理模块,还用于将所述执行结果发送至所述主控端远控模块。

本发明实施例提供的技术方案带来的有益效果是:

在本实施例中,主控端远控模块和被控端远控模块可以通过配置的代理模块,分别与代理服务器建立数据通道,从而主控端远控模块可以通过主控端和代理服务器的数据通道,以及被控端和代理服务器的数据通道,将生成的对被控端的控制命令发送给被控端远控模块,实现了在被控端的ip地址为私网ip地址的情况下主控端对被控端的远程控制,进一步扩大了ssh、mstsc等远程控制程序的应用范围。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种网络场景图;

图2是本发明实施例提供的一种远程控制的方法流程图;

图3是本发明实施例提供的一种远程控制的系统结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种远程控制的方法,该方法的执行主体可以为远程控制系统,该远程控制系统可以包括主控端、被控端以及代理服务器。

其中,主控端和被控端可以是任意终端,如个人计算机、智能手机、平板电脑等。主控端和被控端可以预先配置有远控模块,远控模块可以是远程控制程序,如ssh、mstsc等远程控制程序,主控端远控模块可以向被控端远控模块发送控制命令,被控端远控模块可以接收并执行该控制命令,控制被控端进行相应操作,同时,被控端远控模块可以将执行结果返回给主控端远控模块。

代理服务器可以是具有公网ip地址的任意服务器,其可以部署在远程管理系统的服务商所管理的机房,代理服务器可以作为主控端和被控端之间的网络中转设备,实现主控端和被控端之间的数据传输。

具体网络场景可以如图1所示。上述主控端、被控端以及代理服务器中可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中远程控制的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。

下面将结合具体实施方式,对图2所示的一种远程控制的方法的处理流程进行详细的说明,内容可以如下:

步骤201:主控端代理模块接收由主控端远控模块生成的对被控端的控制命令,获取由代理服务器的中间代理模块预先生成的通道标识。

在实施中,当用户想要通过一终端(可称为主控端)控制另一终端(可称为被控端)进行某操作时,如启动某视频应用程序、编辑某word文件等操作,如果主控端或被控端的ip地址为私网ip地址,即主控端或被控端位于局域网内,该局域网的路由设备可以为主控端或被控端分配私网ip地址,如192.168.1.10,主控端或被控端可以基于私网ip地址进行互联网访问,则用户可以在主控端和被控端分别配置代理模块,可以称为主控端代理模块和被控端代理模块,主控端代理模块和被控端代理模块均可以是常用的代理程序,主控端代理模块/被控端代理模块可以基于代理配置信息对主控端/被控端收发的信息进行处理,主控端代理模块和被控端代理模块可以分别与代理服务器的中间代理模块建立数据通道,如tcp(transmissioncontrolprotocol,传输控制协议)、udp(userdatagramprotocol,用户数据报协议)或tunnel(隧道)等数据通道,上述中间代理模块可以是常用的代理程序。

待配置完成后,用户可以通过主控端的鼠标或键盘等输入设备选择被控端,例如可以在远程控制系统的后台管理页面点击被控端的连接选项,然后用户可以输入对被控端的控制信息。这样,主控端远控模块可以接收到上述控制信息,然后可以生成对被控端的控制命令,进而主控端代理模块可以接收到上述控制命令。同时,主控端代理模块可以获取到由中间代理模块预先生成的通道标识,该通道标识可以标识被控端与代理服务器之间建立的数据通道。

可选的,被控端代理模块可以预先与中间代理模块建立数据通道,相应的,具体处理可以如下:被控端代理模块基于公网ip地址,预先与中间代理模块建立第二数据通道;中间代理模块根据第二数据通道生成对应的通道标识,并将通道标识发送至主控端代理模块。

在实施中,处于局域网内的主控端或被控端均可以基于代理服务器的公网ip地址,与代理服务器建立数据通道。而对于具有私网ip地址的被控端,由于其不具有公网ip地址,因此代理服务器基于被控端的私网ip地址无法在互连网上访问到被控端,从而代理服务器无法主动与被控端建立数据通道,只能由被控端主动与代理服务器建立数据通道。

具体的,可以将被控端代理模块的待连接配置项的ip地址设置为代理服务器的公网ip地址,这样,被控端代理模块可以基于代理服务器的公网ip地址,通过被控端所在局域网的路由设备向代理服务器发起tcp或udp等连接请求。

之后,代理服务器的中间代理模块可以接受上述连接请求,从而可以建立被控端与代理服务器的第二数据通道,进而中间代理模块可以基于上述第二数据通道的连接信息,例如被控端的mac(mediaaccesscontrol,媒体访问控制)码、被控端所在局域网的路由设备标识等连接信息,生成可以唯一标识上述第二数据通道的通道标识,然后中间代理模块可以将生成的通道标识发送给主控端代理模块,需要说明的是,中间代理模块可以主动向主控端代理模块发送该通道标识,也可以在接收到主控端代理模块对通道标识的获取请求后再发送该通道标识。

进一步的,中间代理模块还可以通过运行在代理服务器的后台管理程序,将第二数据通道对应的通道标识发送给主控端代理模块。

具体的,中间代理模块在生成上述通道标识后,可以将该通道标识发送给被控端代理模块。被控端代理模块在接收到该通道标识后,可以将该通道标识上传至上述后台管理程序。之后,后台管理程序可以在后台管理页面生成被控端的连接选项,这样,当用户在后台管理页面点击被控端的连接选项时,后台管理程序可以将上述通道标识发送给主控端代理模块。

可选的,可以将主控端远控模块的被控端ip地址配置项的ip地址修改为主控端代理模块的ip地址,以使主控端代理模块可以接收到对被控端的控制命令,相应的,步骤201的部分处理可以如下:主控端远控模块基于主控端代理模块的ip地址,向主控端代理模块发送携带有控制命令的远程控制请求;主控端代理模块接收远程控制请求,提取控制命令。

在实施中,由于被控端的ip地址为私网ip地址,因此主控端远控模块可以通过代理的方式先将生成的控制命令发送给被控端。具体的,用户可以手动将主控端远控模块的被控端ip地址配置项的ip地址,修改为主控端代理模块的ip地址,也可以由主控端代理模块自动将主控端远控模块的被控端ip地址配置项的ip地址,修改为主控端代理模块的ip地址,在此不作限定。这样,主控端远控模块可以按照被控端ip地址配置项的ip地址(实际为主控端代理模块的ip地址),生成并发送携带有控制命令的远程控制请求,进而主控端代理模块可以接收到上述远程控制请求,从而可以在远程控制请求中提取出控制命令,

步骤202:主控端代理模块通过预先建立的主控端与代理服务器的第一数据通道,将控制命令和通道标识发送至中间代理模块。

在实施中,主控端代理模块可以预先与中间代理模块建立主控端与代理服务器的第一数据通道,也可以在获取到对被控端的控制命令之后,实时建立主控端与代理服务器的第一数据通道。这样,主控端代理模块可以通过主控端与代理服务器的第一数据通道,将上述对被控端的控制命令和上述通道标识发送给中间代理模块。

可选的,主控端代理模块可以基于代理服务器的公网ip地址与中间代理模块建立上述第一数据通道,相应的,步骤202的具体处理可以如下:主控端代理模块基于公网ip地址,与中间代理模块建立第一数据通道;主控端代理模块通过第一数据通道,将控制命令和通道标识发送至中间代理模块。

在实施中,同上述建立第二数据通道的过程类似,可以将主控端代理模块的待连接配置项的ip地址设置为代理服务器的公网ip地址,这样,主控端代理模块可以基于代理服务器的公网ip地址,通过主控端所在局域网的路由设备向代理服务器发起tcp或udp等连接请求,之后,代理服务器的中间代理模块可以接受该连接请求,从而可以建立主控端与代理服务器的第一数据通道。

步骤203:中间代理模块根据通道标识,确定预先建立的被控端与代理服务器的第二数据通道,并通过第二数据通道将控制命令发送至被控端代理模块。

在实施中,中间代理模块在接收到对被控端的控制命令和上述通道标识后,可以基于该通道标识,在预先建立的代理服务器与不同终端的多个数据通道中,确定出被控端与代理服务器的第二数据通道。之后,中间代理模块可以通过确定的第二数据通道,将上述控制命令发送给被控端代理模块。

步骤204:被控端代理模块将控制命令发送至被控端远控模块。

在实施中,被控端代理模块在接收到对被控端的控制命令后,可以将上述控制命令发送至被控端远控模块。

步骤205:被控端远控模块执行控制命令。

在实施中,可以预先将被控端远控模块的主控端ip地址配置项的ip地址,修改为被控端代理模块的ip地址,例如,用户可以手动将被控端远控模块的主控端ip地址配置项的ip地址,修改为被控端代理模块的ip地址,也可以由被控端代理模块自动将被控端远控模块的主控端ip地址配置项的ip地址,修改为被控端代理模块的ip地址。这样,被控端远控模块在接收到被控端代理模块发送的上述控制命令后,可以认为该控制命令来自主控端远控模块,从而可以执行上述控制命令,控制被控端进行相应操作。

不难理解,采用本申请的技术方案可以解除ssh、mstsc等远程控制程序要求被控端的ip地址为私网ip地址的限制,进一步扩大了ssh、mstsc等远程控制程序的应用范围。另外,当主控端或被控端的ip地址为公网ip地址时,同样可以采用本申请的技术方案进行远程控制。

可选的,被控端代理模块可以通过上述第二数据通道和第一数据通道,将执行结果返回给主控端远控模块,相应的,具体处理可以如下:被控端代理模块通过第二数据通道,将接收的由被控端远控模块反馈的执行结果发送至中间代理模块;中间代理模块通过第一数据通道将执行结果发送至主控端代理模块;主控端代理模块将执行结果发送至主控端远控模块。

在实施中,被控端远控模块执行完上述控制命令后,可以将执行结果反馈给被控端代理模块,执行结果可以是记录有被控端显示界面所显示的操作过程的视频流,也可以是执行成功或执行失败的状态信息。之后,被控端代理模块可以通过上述第二数据通道,将上述执行结果发送给中间代理模块,然后中间代理模块可以通过上述第一数据通道将该执行结果发送给主控端代理模块,进而主控端代理模块可以将该执行结果发送给主控端远控模块。主控端远控模块在接收到上述执行结果后,可以进一步生成后续的控制命令,进而可以按照步骤201-205继续对被控端进行远程控制。

在本实施例中,主控端远控模块和被控端远控模块可以通过配置的代理模块,分别与代理服务器建立数据通道,从而主控端远控模块可以通过主控端和代理服务器的数据通道,以及被控端和代理服务器的数据通道,将生成的对被控端的控制命令发送给被控端远控模块,实现了在被控端的ip地址为私网ip地址的情况下主控端对被控端的远程控制,进一步扩大了ssh、mstsc等远程控制程序的应用范围。

基于相同的技术构思,本发明实施例还提供了一种远程控制的系统,如图3所示,所述系统包括主控端31、被控端32以及代理服务器33,所述主控端31包括主控端远控模块311、主控端代理模块312,所述被控端32包括被控端远控模块321、被控端代理模块322,所述代理服务器33包括中间代理模块331,其中:

所述主控端代理模块312,用于接收由所述主控端远控模块311生成的对所述被控端32的控制命令,获取由所述中间代理模块331预先生成的与所述被控端32对应的通道标识;

所述主控端代理模块312,还用于通过预先建立的所述主控端31与所述代理服务器33的第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块331;

所述中间代理模块331,用于根据所述通道标识,确定预先建立的所述被控端32与所述代理服务器33的第二数据通道,并通过所述第二数据通道将所述控制命令发送至所述被控端代理模块322;

所述被控端代理模块322,用于将所述控制命令发送至所述被控端远控模块321;

所述被控端远控模块321,用于执行所述控制命令。

可选的,所述代理服务器33具有公网ip地址;

所述被控端代理模块322还用于:

基于所述公网ip地址,预先与所述中间代理模块331建立所述第二数据通道;

所述中间代理模块331,还用于:

根据所述第二数据通道生成与所述被控端32对应的所述通道标识,并将所述通道标识发送至所述主控端代理模块312。

可选的,所述主控端远控模块311还用于:

基于所述主控端代理模块312的ip地址,向所述主控端代理模块312发送携带有所述控制命令的远程控制请求;

所述主控端代理模块312,还用于:

接收所述远程控制请求,提取所述控制命令。

可选的,所述代理服务器33具有公网ip地址;

所述主控端代理模块312还用于:

基于所述公网ip地址,与所述中间代理模块331建立所述第一数据通道;

通过所述第一数据通道,将所述控制命令和所述通道标识发送至所述中间代理模块331。

可选的,所述被控端代理模块322,还用于通过所述第二数据通道,将接收的由所述被控端远控模块321反馈的执行结果发送至所述中间代理模块331;

所述中间代理模块331,还用于通过所述第一数据通道将所述执行结果发送至所述主控端代理模块312;

所述主控端代理模块312,还用于将所述执行结果发送至所述主控端远控模块311。

在本实施例中,主控端远控模块和被控端远控模块可以通过配置的代理模块,分别与代理服务器建立数据通道,从而主控端远控模块可以通过主控端和代理服务器的数据通道,以及被控端和代理服务器的数据通道,将生成的对被控端的控制命令发送给被控端远控模块,实现了在被控端的ip地址为私网ip地址的情况下主控端对被控端的远程控制,进一步扩大了ssh、mstsc等远程控制程序的应用范围。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1