CN114338632B - 远程终端控制方法、装置、计算机设备及存储介质 - Google Patents
远程终端控制方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114338632B CN114338632B CN202111597976.8A CN202111597976A CN114338632B CN 114338632 B CN114338632 B CN 114338632B CN 202111597976 A CN202111597976 A CN 202111597976A CN 114338632 B CN114338632 B CN 114338632B
- Authority
- CN
- China
- Prior art keywords
- remote terminal
- terminal
- control command
- control
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000007175 bidirectional communication Effects 0.000 claims abstract description 25
- 108700023290 Stanford University protocol Proteins 0.000 claims abstract description 19
- 238000005516 engineering process Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 14
- 230000000149 penetrating effect Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 5
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011330 nucleic acid test Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了远程终端控制方法、装置、计算机设备及存储介质。所述方法包括:利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;获取控制命令;将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。通过实施本发明实施例的方法可实现无需对控制协议进行开发,并发控制量大时,不受服务器的带宽限制,也不受服务器中心控制程序性能以及服务器性能限制。
Description
技术领域
本发明涉及终端控制方法,更具体地说是指远程终端控制方法、装置、计算机设备及存储介质。
背景技术
近年来随着5G+工业互联网行业的不断发展,基于5G的各种设备终端数量增长迅速。
5G网络环境下的终端设备,都是在经运营商NAT(网络地址转换,NetworkAddressTranslation),后连上互联网,无独立公网IP(网际互连协议,InternetProtocol),此时维护人员无法直接通过互联网直接远程连接并控制设备终端,则需要维护人员带上调试设备如笔记本电脑通过有线网线、串口线或ADB(Android调试桥,Android Debug Bridge)线去到现场进行调试和维护,大大增加了维护的成本以及影响了维护的效率。现有技术通过搭建公网控制服务器,所有终端设备主动向公网控制服务器注册,并保持连接,用户再通过公网控制服务器提供的控制协议或控制界面,对远程终端进行控制,所有控制命令均由控制服务器解析、处理、转发后转发至对远程终端设备。但是,这种方式的控制服务器必须解析、处理、转发控制协议,程序需要开发;并发控制量大时,受服务器的带宽限制无法及时处理;并发控制量大时,受服务器中心控制程序性能以及服务器性能限制,不能做到批量控制。
因此,有必要设计一种新的方法,实现无需对控制协议进行开发,并发控制量大时,不受服务器的带宽限制,也不受服务器中心控制程序性能以及服务器性能限制。
发明内容
本发明的目的在于克服现有技术的缺陷,提供远程终端控制方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:远程终端控制方法,包括:
利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;
获取控制命令;
将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
其进一步技术方案为:所述利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道,包括:
上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;
发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;
获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;
发送TCP数据包至远程终端地址二元组;
接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
其进一步技术方案为:所述将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据,包括:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
其进一步技术方案为:所述将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据进行反馈,包括:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,启动shell进程,远程终端接收WebSocket通道所传输的所述控制命令,并转发至伪终端,以使得伪终端反馈与所述控制命令相关的回调数据。
其进一步技术方案为:所述控制命令为shell命令字符串。
本发明还提供了远程终端控制装置,包括:
连接单元,用于利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;
命令获取单元,用于获取控制命令;
传输单元,用于将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
其进一步技术方案为:所述连接单元包括:
上报子单元,用于上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;
请求发送子单元,用于发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;
消息获取子单元,用于获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;
数据包发送子单元,用于发送TCP数据包至远程终端地址二元组;
接收子单元,用于接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
其进一步技术方案为:所述传输单元,用于将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以使得控制端与远程终端直接连接,数据传输时借助伪终端和WebSocket通道完成,实现无需对控制协议进行开发,并发控制量大时,不受服务器的带宽限制,也不受服务器中心控制程序性能以及服务器性能限制。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的远程终端控制方法的应用场景示意图;
图2为本发明实施例提供的远程终端控制方法的流程示意图;
图3为本发明实施例提供的远程终端控制方法的子流程示意图;
图4为本发明实施例提供的远程终端控制方法的子流程示意图;
图5为本发明实施例提供的终端模拟器和伪终端的交互示意图;
图6为本发明实施例提供的伪终端的示意图;
图7为本发明实施例提供的远程终端控制装置的示意性框图;
图8为本发明实施例提供的远程终端控制装置的连接单元的示意性框图;
图9为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的远程终端控制方法的应用场景示意图。图2为本发明实施例提供的远程终端控制方法的示意性流程图。该远程终端控制方法应用于控制端中。该控制端可以为终端设备,该控制端通过利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,即控制端与远程终端直接连接,远程终端使用伪终端的方式与远程终端进行数据传输,当然,还可以用其他控制控制方式,如HTTP2.0配套自定义协议等。
图2是本发明实施例提供的远程终端控制方法的流程示意图。如图2所示,该方法包括以下步骤S110至S130。
S110、利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
在本实施例中,WebSocket通道是指控制端与远程终端直接连接的WebSocket双向通信的通道。
在一实施例中,请参阅图3,上述的步骤S110可包括步骤S111~S115。
S111、上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器。
在本实施例中,请参阅图4,首先需要部署一台服务器,服务器本质上是一台被设置在公网上的STUN(NAT会话穿越应用程序,Session Traversal Utilitiesfor NAT)服务器,建立P2P的双方都可以直接访问到这台服务器。位于NAT网关后面的客户端A和B都可以与一台已知的服务器建立连接,并通过这台服务器了解对方的信息并中转各自的信息,该客户端A可以为控制端,客户端B可以为远程终端。
STUN是一种网络协议,它允许位于NAT或多重NAT后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建连接。
在本实施例中,控制端以及远程终端均需要实现STUN协议的Client端程序,向服务器主动注册以及上报自身的IP、端口以及设备唯一标识符SN,以便于服务器知晓两者的身份等信息。
S112、发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端。
在本实施例中,STUN绑定请求是指与某个远程终端建立连接的请求。
请参阅图4,当控制端需要向远程终端发起连接,由于远程终端没有互联网的连接地址,控制端并不知道如何连接上远程终端,此时控制端需要向服务器发送请求(请求内容为需要连接至远程终端,使用设备唯一标识符SN)。服务器将含有远程终端的外网和内网的地址二元组发给控制端,同时,服务器将包含有控制端的外网和内网的地址二元组信息的消息也发给远程终端,由此控制端与远程终端就都知道对方外网和内网的地址二元组信息了。
S113、获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;
S114、发送TCP数据包至远程终端地址二元组;
S115、接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
请参阅图4,当控制端收到由服务器发来的包含远程终端的外网和内网的地址二元组信息后,控制端开始向远程终端的地址二元组发送TCP数据包,使用WebSocket作为应用层协议,同时监听本地TCP端口是否有外部的连接联入。同理,当远程终端收到由服务器发来的控制端的外网和内网地址二元组信息后,也会开始向控制端的外网和内网的地址二元组发送TCP数据包,使用WebSocket作为应用层协议,同时监听本地TCP端口是否有外部的连接联入,由此完成TCP即WebSocket连接建立,并定时发送心跳保持TCP连接,以免NAT设备将已经穿透的端口进行回收。
上述的TCP连接建立必须解决TCP端口重用的问题,控制端和远程终端在穿透连接的过程中,都需要使用本地TCP端口来监听来自外部的TCP连接,同时建立多个向外的TCP连接,由于要在相同的网络终端上绑定到不同的套接字上,所以必须为这些套接字设置SO_REUSEADDR属性,即允许重用。
服务器仅需支持P2P技术的STUN协议,无需对控制协议进行开发,服务有成熟的方案可以直接使用,业务单纯。当并发控制量大时,控制端与远程终端直接连接,不受集中服务器的带宽限制;当并发控制量大时,控制端与远程终端直接连接,不受服务器中心控制程序性能以及服务器性能限制。
S120、获取控制命令。
在本实施例中,所述控制命令为shell命令字符串,用于控制远程终端的命令。
控制命令是从控制端的命令行操作界面输入所得的,控制端的命令行操作界面为供运维人员使用的控制界面,用于发起控制连接请求和输入输出系统命令。其中操作界面实现类似终端操作的操作界面,捕获操作界面程序的所有输入以及快捷键,通过WebSocket通信的连接通断发送给远程终端上。同时为保证远程控制的安全性,连接之后需通过远程终端的交互界面完成登录验证,传输过程可以使用WSS实现传输过程的机密性。
S130、将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
在本实施例中,将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
回调数据是指控制命令的响应数据。
具体地,将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,启动shell进程,远程终端接收WebSocket通道所传输的所述控制命令,并转发至伪终端,以使得伪终端反馈与所述控制命令相关的回调数据。
远程终端设备打开一个pty伪终端,并启动一个shell进程,且远程终端接收WebSocket传输过来的shell命令字符串,转发至pty伪终端上,同时将pty伪终端的回调数据再通过WebSocket传输回控制端的模拟界面即命令行操作界面上。
请参阅图5,在一台实体Linux电脑的场景下,终端模拟器是Linux内核的一个模块,它可以直接向TTY驱动发送字符,并从TTY驱动读取响应然后打印到屏幕上,同时Linux操作系统是支持通过telnet、ssh等协议多终端远程操作的,而协议与操作系统之间交互和shell执行是通过伪终端来实现的,如图6所示,其中运行在用户区的终端模拟程序,就被称为PTY(伪终端,pseudo terminal),本质上是运行在用户态的终端模拟器创建的一对字符设备。
本实施例的方法不仅适用于5G网络通信场景,也适用于4G、WIFI、Lora等,在处理NAT网络穿透场景均有效;除了采用P2P技术的STUN协议作为实现,同时也适用于P2P技术的其他协议。
本实施例的方法实现了控制端对5G网络的远程终端的远程控制,控制端和远程终端是网络直连的,由此保证了大量数据传输和大批量控制业务不受中心服务器性能和网络的限制,中心的服务器仅提供穿透网络信息,后续的控制过程均不需要参数,也就是去中心化的控制;利用P2P协议,通过服务器交换控制终端的NAT出口地址实现对远程控制端与设备终端直接连接,以解决5G场景下远程终端远程维护的需求,同时降低公网控制服务器程序开发成本,并发控制量大时受公网服务器带宽以及性能的限制。
上述的远程终端控制方法,通过利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以使得控制端与远程终端直接连接,数据传输时借助伪终端和WebSocket通道完成,实现无需对控制协议进行开发,并发控制量大时,不受服务器的带宽限制,也不受服务器中心控制程序性能以及服务器性能限制。
图7是本发明实施例提供的一种远程终端控制装置300的示意性框图。如图7所示,对应于以上远程终端控制方法,本发明还提供一种远程终端控制装置300。该远程终端控制装置300包括用于执行上述远程终端控制方法的单元,该装置可以被配置于终端中。具体地,请参阅图7,该远程终端控制装置300包括连接单元301、命令获取单元302以及传输单元303。
连接单元301,用于利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;命令获取单元302,用于获取控制命令;传输单元303,用于将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
在一实施例中,如图8所示,所述连接单元301包括上报子单元3011、请求发送子单元3012、消息获取子单元3013、数据包发送子单元3014以及接收子单元3015。
上报子单元3011,用于上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;请求发送子单元3012,用于发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;消息获取子单元3013,用于获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;数据包发送子单元3014,用于发送TCP数据包至远程终端地址二元组;接收子单元3015,用于接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
在一实施例中,所述传输单元303,用于将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
在一实施例中,所述传输单元303,用于将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,启动shell进程,远程终端接收WebSocket通道所传输的所述控制命令,并转发至伪终端,以使得伪终端反馈与所述控制命令相关的回调数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述远程终端控制装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述远程终端控制装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。
参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种远程终端控制方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种远程终端控制方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;获取控制命令;将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
其中,所述控制命令为shell命令字符串。
在一实施例中,处理器502在实现所述利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道步骤时,具体实现如下步骤:
上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;发送TCP数据包至远程终端地址二元组;接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
在一实施例中,处理器502在实现所述将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据步骤时,具体实现如下步骤:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
在一实施例中,处理器502在实现所述将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据进行反馈步骤时,具体实现如下步骤:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,启动shell进程,远程终端接收WebSocket通道所传输的所述控制命令,并转发至伪终端,以使得伪终端反馈与所述控制命令相关的回调数据。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate array,FPG控制端)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;获取控制命令;将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
其中,所述控制命令为shell命令字符串。
在一实施例中,所述处理器在执行所述计算机程序而实现所述利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道步骤时,具体实现如下步骤:
上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;发送TCP数据包至远程终端地址二元组;接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据步骤时,具体实现如下步骤:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据进行反馈步骤时,具体实现如下步骤:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,启动shell进程,远程终端接收WebSocket通道所传输的所述控制命令,并转发至伪终端,以使得伪终端反馈与所述控制命令相关的回调数据。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.远程终端控制方法,其特征在于,包括:
利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;
获取控制命令;
将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据;
所述利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道,包括:
上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;
发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;
获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;
发送TCP数据包至远程终端地址二元组;
接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;
控制端和远程终端在穿透连接的过程中,都需要使用本地TCP端口来监听来自外部的TCP连接,同时建立多个向外的TCP连接,由于要在相同的网络终端上绑定到不同的套接字上,为这些套接字设置SO_REUSEADDR属性。
2.根据权利要求1所述的远程终端控制方法,其特征在于,所述将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据,包括:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
3.根据权利要求2所述的远程终端控制方法,其特征在于,所述将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据进行反馈,包括:
将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,启动shell进程,远程终端接收WebSocket通道所传输的所述控制命令,并转发至伪终端,以使得伪终端反馈与所述控制命令相关的回调数据。
4.根据权利要求1所述的远程终端控制方法,其特征在于,所述控制命令为shell命令字符串。
5.远程终端控制装置,其特征在于,包括:
连接单元,用于利用P2P技术中的STUN协议构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;
命令获取单元,用于获取控制命令;
传输单元,用于将所述控制命令通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据;
所述连接单元包括:
上报子单元,用于上报IP、端口以及设备唯一标识符至服务器,且所述远程终端上报终端IP、终端端口以及终端唯一标识符至服务器;
请求发送子单元,用于发送STUN绑定请求至服务器,以使得服务器反馈含有远程终端的外网和内网的地址二元组信息的消息,且服务器将包含有控制端的外网和内网的地址二元组信息的消息发送至远程终端;
消息获取子单元,用于获取来自服务器的含有远程终端的外网和内网的地址二元组信息的消息,以得到远程终端地址二元组;
数据包发送子单元,用于发送TCP数据包至远程终端地址二元组;
接收子单元,用于接收来自远程终端的TCP数据包,以构建与远程终端的WebSocket双向通信连接,以得到WebSocket通道;
控制端和远程终端在穿透连接的过程中,都需要使用本地TCP端口来监听来自外部的TCP连接,同时建立多个向外的TCP连接,由于要在相同的网络终端上绑定到不同的套接字上,为这些套接字设置SO_REUSEADDR属性。
6.根据权利要求5所述的远程终端控制装置,其特征在于,所述传输单元,用于将所述控制命令采用WSS协议且通过WebSocket通道发送至远程终端,以使得远程终端开启伪终端,伪终端接收所述控制命令,并反馈与所述控制命令相关的回调数据。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的方法。
8.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597976.8A CN114338632B (zh) | 2021-12-24 | 2021-12-24 | 远程终端控制方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597976.8A CN114338632B (zh) | 2021-12-24 | 2021-12-24 | 远程终端控制方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338632A CN114338632A (zh) | 2022-04-12 |
CN114338632B true CN114338632B (zh) | 2023-09-22 |
Family
ID=81013621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111597976.8A Active CN114338632B (zh) | 2021-12-24 | 2021-12-24 | 远程终端控制方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338632B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810124A (zh) * | 2018-06-02 | 2018-11-13 | 上海清鹤科技股份有限公司 | 一种对公网环境下大量多媒体终端的远程访问控制系统 |
CN109660637A (zh) * | 2018-11-16 | 2019-04-19 | 深圳市网心科技有限公司 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
CN113783961A (zh) * | 2021-09-14 | 2021-12-10 | 深圳通康创智技术有限公司 | 远程终端管理方法、装置、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3019418A1 (fr) * | 2014-03-31 | 2015-10-02 | Orange | Dispositif et procede de deport de la restitution de contenus multimedia |
JP6378057B2 (ja) * | 2014-11-13 | 2018-08-22 | 株式会社東芝 | 接続制御装置、接続制御方法、接続制御システムおよびコンピュータプログラム |
-
2021
- 2021-12-24 CN CN202111597976.8A patent/CN114338632B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810124A (zh) * | 2018-06-02 | 2018-11-13 | 上海清鹤科技股份有限公司 | 一种对公网环境下大量多媒体终端的远程访问控制系统 |
CN109660637A (zh) * | 2018-11-16 | 2019-04-19 | 深圳市网心科技有限公司 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
CN113783961A (zh) * | 2021-09-14 | 2021-12-10 | 深圳通康创智技术有限公司 | 远程终端管理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
《基于WebRTC技术的远程面试系统的设计与实现》;田旭;《信息科技》(第2014年第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114338632A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2611776C (en) | Method and communication unit for communicating between communication apparatuses | |
CN108965203A (zh) | 一种资源访问方法及服务器 | |
US20160072693A1 (en) | Client-server communication evaluation and diagnostic tool | |
CN110175461A (zh) | 安全多方计算的实现方法、装置、计算机设备和存储介质 | |
US10367893B1 (en) | Method and apparatus of performing peer-to-peer communication establishment | |
US10367894B2 (en) | Information processing apparatus, method for controlling the same, non-transitory computer-readable storage medium, and information processing system | |
JP2007288711A (ja) | ゲートウェイ装置、設定コントローラ、ゲートウェイ装置の負荷分散方法及びプログラム | |
US11671487B1 (en) | Port prediction for peer-to-peer communications | |
US11637874B2 (en) | Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping | |
CN111245831B (zh) | Ftp数据传输方法及装置、服务端和客户端的信息交互系统 | |
US20130226984A1 (en) | Method and apparatus of providing optimized web browser communications | |
CN113630424A (zh) | WebRTC通信方法及系统 | |
CN111741006B (zh) | 一种离散采集网关及其实现方法 | |
CN114338632B (zh) | 远程终端控制方法、装置、计算机设备及存储介质 | |
CN103457746A (zh) | 会议数据的传输方法及装置 | |
CN114301968B (zh) | 服务端的访问方法、系统、设备及存储介质 | |
KR101432326B1 (ko) | 호스트 가장 네트워크 디바이스 및 그의 방법 | |
Saveliev et al. | Architecture of data exchange with minimal client-server interaction at multipoint video conferencing | |
US20200106515A1 (en) | Communication Device, Relay Device, Information Processing System, Communication System and Communication Method | |
US11082534B2 (en) | Methods and devices for testing applications | |
CN108011944B (zh) | 一种Android上降低http请求失败的方法 | |
CN105939317A (zh) | Ssl握手报文的解析方法及装置 | |
US9986042B2 (en) | Zero client device with cached connections | |
CN106534052B (zh) | 一种通信处理方法及电子设备 | |
CN115334139B (zh) | 通信连接控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 510000 room 1301, No. 37, Jinlong street, Xiangjiang financial and business center, Nansha District, Guangzhou City, Guangdong Province (office only) Patentee after: Guangzhou Tongze Kangwei Technology Co.,Ltd. Address before: 510000 room 1301, No. 37, Jinlong street, Xiangjiang financial and business center, Nansha District, Guangzhou City, Guangdong Province (office only) Patentee before: Guangzhou Tongze Kangwei Intelligent Technology Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |