CN109861950A - 设备远程调试方法、装置、设备和存储介质 - Google Patents
设备远程调试方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109861950A CN109861950A CN201711244463.2A CN201711244463A CN109861950A CN 109861950 A CN109861950 A CN 109861950A CN 201711244463 A CN201711244463 A CN 201711244463A CN 109861950 A CN109861950 A CN 109861950A
- Authority
- CN
- China
- Prior art keywords
- debugging
- ssh
- encapsulation
- data
- request data
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种设备远程调试方法、装置、设备和存储介质,以提高设备的调试效率。所述的方法包括:与被调试设备建立映射关系;确定调试请求数据,依据安全外壳SSH协议对所述调试请求数据进行封装并转发给所述被调试设备;接收通过所述SSH协议封装的调试响应数据,解封所述封装的调试响应数据并展示。可实现跨平台的交互,对被调试设备的远程调控,有效的提高调试效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种设备远程调试方法、一种设备远程调试装置、一种控制设备、一种被调试设备和一种存储介质。
背景技术
物联网(Internet of things,IoT)是物物相连的互联网,随着物联网的兴起,物联网设备也越来越多样化。
物联网设备中可以运行各种软件应用,其中软件开发初期,软件中往往会存在一些bug,需要不断调试不断优化。但是,软件需要部署在IoT设备上运行来调试,而这些IoT设备属于硬件部分,而硬件部分和软件部分的开发者往往是不同的,因此IoT设备通常和软件开发者处于不同的区域,导致调试时软件开发者需要到设备所在位置进行调试,调试效率低下。
发明内容
本申请实施例提供了一种设备远程调试方法,以提高设备的调试效率。
相应的,本申请实施例还提供了一种设备远程调试装置、一种控制设备、一种被调试设备和一种存储介质,用以保证上述***的实现及应用。
为了解决上述问题,本申请实施例公开了一种设备远程调试方法,包括:与被调试设备建立映射关系;确定调试请求数据,依据安全外壳SSH协议对所述调试请求数据进行封装并转发给所述被调试设备;接收通过所述SSH协议封装的调试响应数据,解封所述封装的调试响应数据并展示。
可选的,所述与被调试设备建立映射关系,包括:在调试界面中选择被调试设备,发送对应的匹配指令给第一进程;所述第一进程依据所述匹配指令查询所述被调试设备,建立与所述被调试设备的映射关系。
可选的,所述确定调试请求数据,依据安全外壳SSH协议对所述调试请求数据进行封装并转发给所述被调试设备,包括:在调试界面中确定调试请求数据,将所述调试请求数据发送给第二进程;所述第二进程依据SSH协议对所述调试请求数据进行封装,将封装的调试请求数据发送给第一进程;所述第一进程依据所述映射关系,转发所述封装的调试请求数据给所述被调试设备。
可选的,所述接收通过所述SSH协议封装的调试响应数据,解封所述封装的调试响应数据并展示,包括:第一进程接收所述封装的调试响应数据,将所述封装的调试响应数据发送给第二进程;第二进程依据所述SSH协议对所述封装的调试响应数据进行解封,得到对应的调试响应数据;第二进程将所述调试响应数据发送给调试界面,在所述调试界面中展示所述调试响应数据。
可选的,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
可选的,还包括:第二进程对通过所述SSH协议封装的调试请求数据进行加密;和/或,第二进程对通过所述SSH协议封装的调试响应数据进行解密。
本申请实施例还提供了一种设备远程调试方法,包括:接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封;执行解封得到的调试请求数据的对应操作,生成调试响应数据;按照所述SSH协议对所述调试响应数据进行封装并转发。
可选的,所述接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封,包括:第三进程接收通过SSH协议封装的调试请求数据,将所述封装的调试请求数据发送给第四进程;所述第四进程按照SSH协议对所述封装的调试请求数据进行解封,得到对应的调试请求数据。
可选的,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
可选的,所述执行解封得到的调试请求数据的对应操作,生成调试响应数据,包括:第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
可选的,所述执行解封得到的调试请求数据的对应操作,生成调试响应数据,包括:第四进程执行调试命令对应的调试操作,生成相应的调试结果。
可选的,所述按照所述SSH协议对所述调试响应数据进行封装并转发,包括:第四进程按照SSH协议对所述调试响应数据进行封装,将封装的调试响应数据转发给第三进程;所述第三进程发送所述封装的调试响应数据。
可选的,还包括:第四进程对通过所述SSH协议封装的调试请求数据进行解密;和/或,第四进程对通过所述SSH协议封装的调试响应数据进行加密。
本申请实施例还提供了一种设备远程调试装置,包括:通信模块,用于与被调试设备建立映射关系;转发封装的调试请求数据给所述被调试设备;以及,接收通过所述SSH协议封装的调试响应数据;操作模块,用于确定调试请求数据;以及展示调试响应数据;协议处理模块,用于依据安全外壳SSH协议对所述调试请求数据进行封装;以及解封封装的调试响应数据。
可选的,所述操作模块,用于在调试界面中选择被调试设备,发送对应的匹配指令给第一进程;所述通信模块,用于通过所述第一进程依据所述匹配指令查询所述被调试设备,建立与所述被调试设备的映射关系。
可选的,所述操作模块,用于在调试界面中确定调试请求数据,将所述调试请求数据发送给第二进程;所述协议处理模块,用于通过第二进程依据SSH协议对所述调试请求数据进行封装,将封装的调试请求数据发送给第一进程;所述通信模块,用于通过所述第一进程依据所述映射关系,转发所述封装的调试请求数据给所述被调试设备。
可选的,所述通信模块,用于通过第一进程接收所述封装的调试响应数据,将所述封装的调试响应数据发送给第二进程;所述协议处理模块,用于通过第二进程依据所述SSH协议对所述封装的调试响应数据进行解封,得到对应的调试响应数据;第二进程将所述调试响应数据发送给调试界面;所述操作模块,用于在所述调试界面中展示所述调试响应数据。
可选的,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
可选的,所述协议处理模块,还用于通过第二进程对通过所述SSH协议封装的调试请求数据进行加密;和/或,通过第二进程对通过所述SSH协议封装的调试响应数据进行解密。
本申请实施例还提供了一种设备远程调试装置,包括:代理模块,用于接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封;以及,按照所述SSH协议对所述调试响应数据进行封装并转发;协议服务模块,用于执行解封得到的调试请求数据的对应操作,生成调试响应数据。
可选的,所述代理模块,用于通过第三进程接收通过SSH协议封装的调试请求数据,将所述封装的调试请求数据发送给第四进程;所述协议服务模块,用于通过所述第四进程按照SSH协议对所述封装的调试请求数据进行解封,得到对应的调试请求数据。
可选的,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
可选的,所述协议服务模块,用于通过第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
可选的,所述协议服务模块,用于通过第四进程执行调试命令对应的调试操作,生成相应的调试结果。
可选的,所述协议服务模块,用于通过第四进程按照SSH协议对所述调试响应数据进行封装,将封装的调试响应数据转发给第三进程;所述代理模块,用于通过所述第三进程发送所述封装的调试响应数据。
可选的,所述代理模块,还用于通过第四进程对通过所述SSH协议封装的调试请求数据进行解密;和/或,通过第四进程对通过所述SSH协议封装的调试响应数据进行加密。
本申请实施例还提供了一种控制设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述控制设备执行如本申请实施例中一个或多个所述的设备远程调试方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得控制设备执行如本申请实施例中一个或多个所述的设备远程调试方法。
本申请实施例还提供了一种被调试设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述被调试设备执行如本申请实施例中一个或多个所述的设备远程调试方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得被调试设备执行如本申请实施例中一个或多个所述的设备远程调试方法。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,能够动态的建立控制设备和被调试设备的映射关系,实现跨平台的交互,然后控制设备能够采用SSH协议封装调试请求数据后转发给被调试设备,被调试设备解封后执行调试请求数据对应的处理操作并将调试响应数据采用SSH协议封装后返回,然后控制设备解封所述封装的调试响应数据并展示,从而实现对被调试设备的远程调控,有效的提高调试效率。
附图说明
图1是本申请实施例的一种远程调试***的示意图;
图2是本申请实施例中远程设备调试的交互示意图;
图3是本申请一种远程设备调试方法实施例中控制设备的步骤流程图;
图4是本申请一种远程设备调试方法实施例中被调试设备的步骤流程图;
图5是本申请另一种远程设备调试方法实施例中控制设备的步骤流程图;
图6是本申请另一种远程设备调试方法实施例中被调试设备的步骤流程图;
图7是本申请一个远程设备调试装置实施例的结构框图;
图8是本申请另一个远程设备调试装置实施例的结构框图;
图9是本申请一实施例提供的电子设备的硬件结构示意图;
图10是本申请另一实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例提供了一种设备远程调试方法和装置,能够通过控制设备基于安全外壳(Secure Shell,SSH)协议对被调试设备进行调试,从而无需调试人员在被调试设备上操作,提高调试效率。其中,SSH协议由国际互联网工程任务组(The Internet EngineeringTask Force,IETF)的网络小组(Network Working Group)所制定,SSH协议为建立在应用层基础上的安全协议,是一种较为可靠的,专为远程登录会话和其他网络服务提供安全性的协议。
参照图1的远程调试***所示,该远程调试***包括:控制设备10和被调试设备20,控制设备10和被调试设备20通过互联网连接,其中,控制设备10为调试方设备,用于远程的对被调试设备进行调试,可为台式电脑、笔记本电脑等各种电子设备;所述被调试设备20为被调试的设备,包括IoT设备,如厨电设备、家居设备、安防设备以及应用在医疗保健、运输、食品等各种行业的IoT设备。本实施例中,远程调试***中可包括一台或多台被调试设备,如图1中被调试设备201-被调试设备20n,n为正整数。在控制设备10和被调试设备20中均具有基于SSH协议的处理模块,以能够执行SSH协议对应的封装、解封操作。
从而控制设备10可从被调试设备201-被调试设备20n中选择被调试设备20x,然后动态的与选择的被调试设备20x建立映射关系,基于该映射关系可建立控制设备和被调试设备的关联关系,从而进行调试数据的通信。控制设备10可确定调试请求数据,该调试请求数据为调试方执行调试相关的数据,所述调试请求数据包括:SSH连接请求和/或调试命令,其中,SSH连接请求用于建立SSH服务,调试命令用于执行调试。然后按照SSH协议对所述调试请求数据进行封装,得到对应封装的调试请求数据,将封装的调试请求数据转发给选择的被调试设备。其中,调试命令可为shell命令,如通过top命令查看***各个模块的CPU利用率,通过ifconfig查看网口是否正常,通过ping命令查看DNS(Domain Name System,域名***)服务是否正常,通过date查看RTC(Real-Time Clock,实时时钟)时间是否正常等。
该被调试设备可接收到通过SSH协议封装的调试请求数据后,可基于SSH协议对该封装的调试请求数据进行解封处理,得到相应的调试请求数据,然后执行该调试请求数据对应的操作,如依据SSH连接请求调用SSH服务,又如依据调试命令执行相应的调试操作等,基于相应的操作生成调试响应数据,然后可按照SSH协议对该调试响应数据进行封装,将封装的调试响应数据发送给控制设备。
控制设备接收到通过所述SSH协议封装的调试响应数据后,按照SSH协议对封装的调试响应数据进行解封,得到相应的调试响应数据,所述调试响应数据包括:SSH连接结果和/或调试结果,然后基于该调试响应数据显示相应的调试展示信息,例如连接是否成功、调试状态、调试结果等。
本申请实施例基于SSH协议实现对调试数据的封装、解封,从而实现远程调试。从而基于SSH协议,控制设备可远程选择需要的被调试设备并进行调试,有效的提高了调试效率。
其中,控制设备包括:调试界面、第一进程和第二进程。调试界面为用户可视化界面,负责前端页面的展示,如展示在线设备列表、用户选择被调试设备以及各种调试响应的结果等,该调试界面可通过多种方式实现,如通过UI、HTML等,例如采用HTML实现调试界面,则该可基于B/S(Browser/Server,浏览器/服务器)架构构建,可以满足跨平台需求,部署成本明显降低,同时能够通过私有协议实现动态更新映射表。其中,B/S架构是WEB(广域网)兴起后的一种网络结构模式,这种模式将***功能实现的核心部分集中到服务器上,简化了***的开发、维护和使用。客户机上只要安装一个浏览器就能与服务端通讯。第一进程(SSHDispatcher)为一种服务端进程,负责维护在线设备信息,用户与设备的映射关系,根据映射关系进行报文转发,例如第一进程为基于JAVA的服务器进程。第二进程(WebSSH)也是一种服务端进程,负责将前端页面的输入封装成SSH协议,并将来自设备的SSH报文解析成明文,能够提供与本地shell相同的体验,支持着色和TAB自动补全等功能。例如第二进程为基于Node.js的服务端进程。
被调试设备包括第三进程和第四进程,其中,第三进程(SSHD Agent)为运行在被调试设备端的代理进程,负责维护与控制设备的第一进程websocket连接,与第四进程的raw tcp连接,并可将设备基本信息上报到云端,供用户选择被调试设备。第四进程(SSHD)为linux上开源的SSH协议服务端,从而在连接到该SSH协议服务端后,能够执行shell命令以进行调试。
因此基于上述被调试设备和控制设备的架构,可执行如图2所示的交互过程:
步骤202,被调试设备的第三进程向控制设备的第一进程宣告设备上线。从而表征该被调试设备可操作,能够提供远程调试功能。
步骤204,控制设备的调试界面中选择需要调试的被调试设备,然后发送匹配指令给第一进程。调试界面上可显示上线的被调试设备,从而用户能够在界面中选择要调试的被调试设备,基于该选择指示生成相应的匹配指令给第一进程。
步骤206,第一进程依据所述匹配指令查询所述被调试设备,建立控制设备与该被调试设备的映射关系。其中,被调试设备和控制设备均提供了公网端口,基于该映射关系可建立两个公网端口的关系,从而能够正确定进行调试的SSH报文的交互,包括封装的调试请求数据和封装的调试响应数据。
步骤208,在调试界面中确定SSH连接请求,将所述SSH连接请求发送给第二进程。在映射关系建立后,用户可在调试界面中操作,从而发起SSH连接的SSH连接请求。
步骤210,所述第二进程依据SSH协议对所述SSH连接请求进行封装,将封装的SSH连接请求发送给第一进程。
步骤212,所述第一进程依据所述映射关系,转发所述封装的SSH连接请求给所述被调试设备的第三进程。
步骤214,第三进程接收通过SSH协议封装的SSH连接请求,将所述封装的SSH连接请求发送给第四进程。
步骤216,所述第四进程按照SSH协议对所述封装的SSH连接请求进行解封,得到对应的SSH连接请求。
步骤218,第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
步骤220,第四进程按照SSH协议对所述SSH连接结果进行封装,将封装的SSH连接结果转发给第三进程。
步骤222,所述第三进程发送所述封装的SSH连接结果给控制设备的第一进程。
步骤224,第一进程将封装的SSH连接结果发送给第二进程。
步骤226,第二进程按照SSH协议对封装的SSH连接结果进行解封,将SSH连接结果发送给调试界面。
步骤228,调试界面对SSH连接结果进行展示。
步骤230,在调试界面中确定调试命令,将所述调试命令发送给第二进程。在SSH连接成功后,用户可在调试界面中操作选择相应的Shell命令或键入相应的Shell命令,如cat命令、netstat命令等。其中,基于cat命令可展示文件内容,基于netstat可展示tcp/udp服务状态。
步骤232,所述第二进程依据SSH协议对所述调试命令进行封装,将封装的调试命令发送给第一进程。
步骤234,所述第一进程依据所述映射关系,转发所述封装的调试命令给所述被调试设备的第三进程。
步骤236,第三进程接收通过SSH协议封装的调试命令,将所述封装的调试命令发送给第四进程。
步骤238,所述第四进程按照SSH协议对所述封装的调试命令进行解封,得到对应的调试命令。
步骤240,第四进程执行调试命令对应的调试操作,生成相应的调试结果。如基于cat命令确定相应的文件内容展示文件内容,基于netstat可查询并展示tcp/udp服务状态等。
步骤242,第四进程按照SSH协议对所述调试结果进行封装,将封装的调试结果转发给第三进程。
步骤244,所述第三进程发送所述封装的调试结果给控制设备的第一进程。
步骤246,第一进程将封装的调试结果发送给第二进程。
步骤248,第二进程按照SSH协议对封装的调试结果进行解封,将调试结果发送给调试界面。
步骤250,调试界面对调试结果进行展示。
本申请实施例中,控制设备中第二进程和被调试设备中的第四进程可执行SSH报文的封装和解封,在该过程中,还可对SSH报文进行加解密处理。即第二进程对通过所述SSH协议封装的调试请求数据进行加密;和/或,第二进程对通过所述SSH协议封装的调试响应数据进行解密。第四进程对通过所述SSH协议封装的调试请求数据进行解密;和/或,第四进程对通过所述SSH协议封装的调试响应数据进行加密。
上述加解密可通过各种加解密方式实现,例如通过对称加密、非对称加密等方式实现。以非对称加密方式为例,可根据预置的公钥(key)将要发送的SSH报文进行RSA加密,收到SSH报文后再通过私钥(secret)进行RSA解密,其中,可在被调试设备中分配相应的证书,在控制设备中存储与证书对应的密钥包括公钥和私钥。从而通过加密的私有协议,实现用户动态选择可被调试设备,大大改善了调试体验。
其中,SSH报文中可携带各种参数,例如在消息头中携带消息类型、服务类型、数据长度、消息ID等,该服务类型可记录SSH服务的端口,HTTP服务的端口、远程桌面服务等服务信息。从而基于消息头确定通信对端并实现数据交互。上述交互过程可基于各种服务实现连接交互,如SSH连接、HTTP连接、远程桌面服务等。
本申请一个示例中,上述步骤204、208、226可基于HTTP连接实现,其他调试界面和第二进程、第二进程和第一进程、第一进程和第三进程间的交互通过websocket实现交互,第三进程和第四进程间基于RAW TCP交互。
从而基于SSH协议而不是常规调试协议,不仅支持远程调试,亦能提供更复杂的shell命令支持,最大程度满足开发者的调试需求。基于B/S架构实现跨平台部署。
上述过程不采用周期性数据上报,而是实时更新的方式,确保调试结果准确显示给调试方。在被调试设备端,仅依赖***自带的SSHD,无需新增gdb server,windbg server调试服务器,能够支持配置较差的嵌入式linux设备,大大降低了移植成本。
参照图3,示出了本申请一种设备远程调试方法实施例中控制设备侧的步骤流程图,具体包括如下步骤:
步骤302,与被调试设备建立映射关系。
步骤304,确定调试请求数据,依据SSH协议对所述调试请求数据进行封装并转发给所述被调试设备。
步骤306,接收通过所述SSH协议封装的调试响应数据,解封所述封装的调试响应数据并展示。
控制设备可从多个被调试设备中选择需要调试的设备,然后与选择的被调试设备建立映射关系,从而实现控制设备和被调试设备之间端口的映射,实现两者之间的数据传输。然后远程设备可确定调试请求数据,所述调试请求数据包括:SSH连接请求和/或调试命令。然后按照SSH协议对所述调试请求数据进行封装,得到对应封装的调试请求数据,将封装的调试请求数据转发给选择的被调试设备。
控制设备接收到通过所述SSH协议封装的调试响应数据后,按照SSH协议对封装的调试响应数据进行解封,得到相应的调试响应数据,然后基于该调试响应数据显示相应的调试展示信息,例如连接是否成功、调试状态、调试结果等。
参照图4,示出了本申请一种设备远程调试方法实施例中被调试设备侧的步骤流程图,具体包括如下步骤:
步骤402,接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封。
步骤404,执行解封得到的调试请求数据的对应操作,生成调试响应数据。
步骤406,按照所述SSH协议对所述调试响应数据进行封装并转发。
该被调试设备可接收到通过SSH协议封装的调试请求数据后,可基于SSH协议对该封装的调试请求数据进行解封处理,得到相应的调试请求数据,然后执行该调试请求数据对应的操作,如依据SSH连接请求调用SSH服务,依据调试命令执行相应的调试操作等,基于相应的操作生成调试响应数据,然后可按照SSH协议对该调试响应数据进行封装,将封装的调试响应数据发送给控制设备。
综上,能够动态的建立控制设备和被调试设备的映射关系,实现跨平台的交互,然后控制设备能够采用SSH协议封装调试请求数据后转发给被调试设备,被调试设备解封后执行调试请求数据对应的处理操作并将调试响应数据采用SSH协议封装后返回,然后控制设备解封所述封装的调试响应数据并展示,从而实现对被调试设备的远程调控,有效的提高调试效率。
本申请实施例中上述过程可通过控制设备和被调试设备的交互实现,而无需第三方的代理设备转发,进一步减少数据交互,提高数据效率。并且能够实时传输调试请求数据和调试响应数据,提高调试的真实性。
参照图5,示出了本申请另一种设备远程调试方法实施例中控制设备侧的步骤流程图,具体包括如下步骤:
步骤502,控制设备的调试界面中选择需要调试的被调试设备,然后发送匹配指令给第一进程。
调试界面上可显示上线的被调试设备,其中,在控制设备中可存储在线设备列表,基于该在线设备列表展示在线的被调试设备,然后用户能够在界面中选择的被调试设备,基于该选择指示生成相应的匹配指令给第一进程。
步骤504,第一进程依据所述匹配指令查询所述被调试设备,建立控制设备与该被调试设备的映射关系。
第一进程依据该匹配指令确定所需的被调试设备,然后建立该控制设备和被调试设备的映射关系,其中,被调试设备和控制设备均提供了公网端口,基于该映射关系可建立两个公网端口的关系,从而能够正确的进行SSH报文的交互。本申请实施例中,调试方和被调试方的映射关系是非固定的,通过在线设备列表的展示和用户的选择,达到动态调整消息映射的目的,灵活性较高。
步骤506,在调试界面中确定SSH连接请求,将所述SSH连接请求发送给第二进程。
在控制设备与该被调试设备的映射关系建立后,用户可在调试界面中操作,从而发起SSH连接的SSH连接请求。该SSH连接请求用于建立与被调试设备的SSH连接,使得控制设备能够调用相应的SSH服务与控制设备交互。
步骤508,所述第二进程依据SSH协议对所述SSH连接请求进行封装,并对封装的SSH连接请求进行加密,然后将封装的SSH连接请求发送给第一进程。
第二进程依据SSH协议对所述SSH连接请求进行封装,并且按照预置的加密算法对封装的SSH连接请求进行加密处理,例如采用非对称加密时通过公钥进行加密,然后将该封装的SSH连接请求发送给第一进程。
步骤510,所述第一进程依据所述映射关系,转发所述封装的SSH连接请求给所述被调试设备的第三进程。
第一进程接收到该封装的SSH连接请求后,可依据映射关系确定被调试设备的端口,然后向该端口转发所述封装的SSH连接请求,即将该封装的SSH连接请求转发给所述被调试设备的第三进程。
步骤512,第一进程将封装的SSH连接结果发送给第二进程。
被调试设备执行相应的处理后可发送封装的SSH连接结果给控制设备的第一进程,然后第一进程将封装的SSH连接结果发送给第二进程。
步骤514,第二进程对封装的SSH连接结果进行解密后,按照SSH协议对封装的SSH连接结果进行解封,将SSH连接结果发送给调试界面。
第二进程按照SSH协议对封装的SSH连接结果进行解密,解密方式与加密方式对应,例如在采用非对称加密时可基于私钥进行解密,然后对解密后封装的SSH连接结果进行解封,得到SSH连接结果,再将SSH连接结果发送给调试界面。
步骤516,调试界面对SSH连接结果进行展示。
调试界面依据SSH连接结果确定相应的展示信息,然后在界面中显示相应的SSH连接结果,如成功、失败等结果,以及相应的提示信息等。还可包括被调试设备的信息,如被调试设备的型号等参数。
步骤518,在调试界面中确定调试命令,将所述调试命令发送给第二进程。
在SSH连接成功后,调试界面可提供输入调试命令即shell命令的操作框,也可提供选择shell命令的控件等,从而用户可在调试界面中操作选择相应的shell命令或键入相应的shell命令,如cat命令、netstat命令等。其中,基于cat命令可展示文件内容,基于netstat可展示tcp/udp服务状态。
步骤520,所述第二进程依据SSH协议对所述调试命令进行封装,并对封装的调试命令进行加密,然后将封装的调试命令发送给第一进程。
第二进程依据SSH协议对所述调试命令进行封装,以及按照加密算法对封装的调试命令进行加密后,将封装的调试命令发送给第一进程。
步骤522,所述第一进程依据所述映射关系,转发所述封装的调试命令给所述被调试设备的第三进程。
第一进程查询映射关系确定被调试设备的端口,然后转发所述封装的调试命令给所述被调试设备的第三进程。
步骤524,第一进程将封装的调试结果发送给第二进程。
第一进程可从第三进程接收封装的调试结果,然后将封装的调试结果发送给第二进程。
步骤526,第二进程对封装的调试结果解密后,按照SSH协议对封装的调试结果进行解封,将调试结果发送给调试界面。
第二进程按照解密方法对封装的调试结果进行解密,然后按照SSH协议对封装的调试结果进行解封,得到相应的将调试结果发送给调试界面。
步骤528,调试界面对调试结果进行展示。
调试界面对调试结果进行展示,基于cat命令的调试结果可展示文件内容,基于netstat的调试结果可展示tcp/udp服务状态等。
从而基于websocket长连接和SSH协议,实时将设备输出显示到前端页面,而不是定时刷新数据,能够确保整个调试结果的准确性。
参照图6,示出了本申请另一种设备远程调试方法实施例中被调试设备侧的步骤流程图,具体包括如下步骤:
步骤602,被调试设备的第三进程向控制设备的第一进程宣告设备上线。
被调试设备启动后,第三进程可向控制设备的第一进程宣告设备上线,如发送上线报文等数据,控制设备接收到上线报文即确认被调试设备在心,从而表征该被调试设备可操作,能够提供远程调试功能。
步骤604,第三进程接收通过SSH协议封装的SSH连接请求,将所述封装的SSH连接请求发送给第四进程。
对该被调试设备进行调试时,第三进程接收通过SSH协议封装的SSH连接请求,将所述封装的SSH连接请求发送给第四进程。
步骤606,所述第四进程对封装的SSH连接请求解密后,按照SSH协议对所述封装的SSH连接请求进行解封,得到对应的SSH连接请求。
所述第四进程按照解密算法对封装的SSH连接请求进行解密,然后按照SSH协议对所述封装的SSH连接请求进行解封,得到对应的SSH连接请求。
步骤608,第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
第四进程依据SSH连接请求可定制SSH的远程调用服务,从而可调用在linux中内置的SSH协议服务,在调用成功后可生成连接成功的SSH连接结果,若调用失败则相应生成连接失败的SSH连接结果。
步骤610,第四进程按照SSH协议对所述SSH连接结果进行封装,并对封装的SSH连接结果进行加密,然后将封装的SSH连接结果转发给第三进程。
步骤612,所述第三进程发送所述封装的SSH连接结果给控制设备的第一进程。
步骤614,第三进程接收通过SSH协议封装的调试命令,将所述封装的调试命令发送给第四进程。
在连接成功后,第三进程还可接收通过SSH协议封装的调试命令,然后将所述封装的调试命令发送给第四进程。
步骤616,所述第四进程对封装的调试命令解密后,按照SSH协议对所述封装的调试命令进行解封,得到对应的调试命令。
步骤618,第四进程执行调试命令对应的调试操作,生成相应的调试结果。
第四进程执行调试命令对应的调试操作,具体调试操作依据调试命令确定,如调试命令为cat命令、netstat命令等,然后可执行相应查看文件内容、tcp/udp服务状态等操作,再生成相应的调试结果。
步骤620,第四进程按照SSH协议对所述调试结果进行封装,并对封装的调试结果进行加密,然后将封装的调试结果转发给第三进程。
步骤622,所述第三进程发送所述封装的调试结果给控制设备的第一进程。
从而实现控制设备对被调试设备的远程调试,基于SSH协议和linux,不仅能进行gdb调试,还能利用shell获取更多***信息,提高调试效率。SSH协议可支持多种平台,因此控制设备可实现跨平台的调试。
现有技术的有些远程调试方案中,采用调试客户端和调试服务端的方式,但是调试客户端和调试服务端均需要通过代理来连接第三方的中转代理执行,即需要三种硬件设备之间多层的代理中转,部署麻烦且无法做到跨平台;而本申请在被调试设备和控制设备之间实现,无需多层代理中转并且可实现跨平台的远程调试。上述这种调试方案还依赖调试服务器的类型(gdb server/windbg server),调试功能单一;而本申请实施例基于SSH协议,通过shell可实现各种调试。并且上述这种调试方案调试方和被调试方的映射关系是固定的,灵活性差,其不支持多用户实时调试;而本申请实施例的远程被调试设备,可选择被调试设备动态建立映射关系,从而实现实时调试。
现有技术中还有一些方案虽然基于SSH协议实现,但是其依赖于SSH反向代理且要求管理员(root)权限,而大多数嵌入式linux***配置中会保留SSHD而将SSH client裁剪掉,通用性差;本申请实施例基于tcp socket实现,无需管理员权限支持,降低风险并提高通用性。并且该方案是周期性采集设备端的调试结果输出到服务器端,存在延时过大,调试结果不完全真实的问题;而本申请实施例可动态建立映射关系,实现实时调试,提高测试结果的真实性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还提供了一种设备远程调试装置,应用于控制设备,该控制设备可远程对被调试设备进行调试。
参照图7,示出了本申请一种设备远程调试装置实施例的结构框图,具体可以包括如下模块:
通信模块702,用于与被调试设备建立映射关系;转发封装的调试请求数据给所述被调试设备;以及,接收通过所述SSH协议封装的调试响应数据。
操作模块704,用于确定调试请求数据;以及展示调试响应数据。
协议处理模块706,用于依据安全外壳SSH协议对所述调试请求数据进行封装;以及解封封装的调试响应数据。
本申请实施例中,该通信模块702可与上述对应第一进程,操作模块704可与上述调试界面,协议处理模块706可与上述第二进程对应。
其中,一个可选实施例中,所述操作模块,用于在调试界面中选择被调试设备,发送对应的匹配指令给第一进程;所述通信模块,用于通过所述第一进程依据所述匹配指令查询所述被调试设备,建立与所述被调试设备的映射关系。
所述操作模块,用于在调试界面中确定调试请求数据,将所述调试请求数据发送给第二进程;所述协议处理模块,用于通过第二进程依据SSH协议对所述调试请求数据进行封装,将封装的调试请求数据发送给第一进程;所述通信模块,用于通过所述第一进程依据所述映射关系,转发所述封装的调试请求数据给所述被调试设备。
所述通信模块,用于通过第一进程接收所述封装的调试响应数据,将所述封装的调试响应数据发送给第二进程;所述协议处理模块,用于通过第二进程依据所述SSH协议对所述封装的调试响应数据进行解封,得到对应的调试响应数据;第二进程将所述调试响应数据发送给调试界面;所述操作模块,用于在所述调试界面中展示所述调试响应数据。
其中,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
所述协议处理模块,还用于通过第二进程对通过所述SSH协议封装的调试请求数据进行加密;和/或,通过第二进程对通过所述SSH协议封装的调试响应数据进行解密。
在上述实施例的基础上,本实施例还提供了一种设备远程调试装置,应用于被调试设备,该被调试设备可基于远程设备的控制进行调试。
参照图8,示出了本申请另一种设备远程调试装置实施例的结构框图,具体可以包括如下模块:
代理模块802,用于接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封;以及,按照所述SSH协议对所述调试响应数据进行封装并转发。
协议服务模块804,用于执行解封得到的调试请求数据的对应操作,生成调试响应数据。
其中,所述代理模块802与上述第三进程对应,所述协议服务模块804与上述第四进程对应。
所述代理模块,用于通过第三进程接收通过SSH协议封装的调试请求数据,将所述封装的调试请求数据发送给第四进程;所述协议服务模块,用于通过所述第四进程按照SSH协议对所述封装的调试请求数据进行解封,得到对应的调试请求数据。
SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
一个示例中,所述协议服务模块,用于通过第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
另一个示例中,所述协议服务模块,用于通过第四进程执行调试命令对应的调试操作,生成相应的调试结果。
所述协议服务模块,用于通过第四进程按照SSH协议对所述调试响应数据进行封装,将封装的调试响应数据转发给第三进程;所述代理模块,用于通过所述第三进程发送所述封装的调试响应数据。
所述代理模块,还用于通过第四进程对通过所述SSH协议封装的调试请求数据进行解密;和/或,通过第四进程对通过所述SSH协议封装的调试响应数据进行加密。
所述代理模块,还用于向控制设备的第一进程发送上线报文,以宣告设备上线。
综上,能够动态的建立控制设备和被调试设备的映射关系,实现跨平台的交互,然后控制设备能够采用SSH协议封装调试请求数据后转发给被调试设备,被调试设备解封后执行调试请求数据对应的处理操作并将调试响应数据采用SSH协议封装后返回,然后控制设备解封所述封装的调试响应数据并展示,从而实现对被调试设备的远程调控,有效的提高调试效率。
本申请实施例中上述过程可通过控制设备和被调试设备的交互实现,而无需第三方的代理设备转发,进一步减少数据交互,提高数据效率。并且能够实时传输调试请求数据和调试响应数据,提高调试的真实性。
基于SSH协议而不是常规调试协议,不仅支持远程调试,亦能提供更复杂的shell命令支持,最大程度满足开发者的调试需求。基于B/S架构实现跨平台部署。
上述过程不采用周期性数据上报,而是实时更新的方式,确保调试结果准确显示给调试方。在被调试设备端,仅依赖***自带的SSHD,无需新增gdb server,windbg server调试服务器,能够支持配置较差的嵌入式linux设备,大大降低了移植成本。
实现控制设备对被调试设备的远程调试,基于SSH协议和linux,不仅能进行gdb调试,还能利用shell获取更多***信息,提高调试效率。SSH协议可支持多种平台,因此控制设备可实现跨平台的调试。
现有技术的有些远程调试方案中,采用调试客户端和调试服务端的方式,但是调试客户端和调试服务端均需要通过代理来连接第三方的中转代理执行,即需要三种硬件设备之间多层的代理中转,部署麻烦且无法做到跨平台;而本申请在被调试设备和控制设备之间实现,无需多层代理中转并且可实现跨平台的远程调试。上述这种调试方案还依赖调试服务器的类型(gdb server/windbg server),调试功能单一;而本申请实施例基于SSH协议,通过shell可实现各种调试。并且上述这种调试方案调试方和被调试方的映射关系是固定的,灵活性差,其不支持多用户实时调试;而本申请实施例的远程被调试设备,可选择被调试设备动态建立映射关系,从而实现实时调试。
现有技术中还有一些方案虽然基于SSH协议实现,但是其依赖于SSH反向代理且要求管理员(root)权限,而大多数嵌入式linux***配置中会保留SSHD而将SSH client裁剪掉,通用性差;本申请实施例基于tcp socket实现,无需管理员权限支持,降低风险并提高通用性。并且该方案是周期性采集设备端的调试结果输出到服务器端,存在延时过大,调试结果不完全真实的问题;而本申请实施例可动态建立映射关系,实现实时调试,提高测试结果的真实性。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括控制设备和被调试设备,如物联网设备等。
图9为本申请一实施例提供的电子设备的硬件结构示意图,该电子设备可包括终端设备、服务器等。如图9所示,该电子设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM(Random Access Memory,随机存取存储器),也可能还包括非易失性存储NVM(Non-Volatile Memory),例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件***接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该设备的处理器包括用于执行各电子设备中各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图10为本申请另一实施例提供的电子设备的硬件结构示意图。图10是对图9在实现过程中的一个具体的实施例。如图10所示,本实施例的电子设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图1至图6的设备远程调试方法。
存储器102被配置为存储各种类型的数据以支持在电子设备的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器RAM,也可能还包括非易失性存储器NVM,例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该电子设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出接口107和/或传感器组件108。设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图1至图6方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为设备的各种组件提供电力。电源组件104可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出接口107为处理组件100和***接口模块之间提供接口,上述***接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为设备提供各个方面的状态评估。例如,传感器组件108可以检测到设备的打开/关闭状态,组件的相对定位,用户与设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于电子设备和其他电子设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该电子设备中可以包括SIM卡插槽,该SIM卡插槽用于***SIM卡,使得设备可以登录GPRS网络,通过互联网与服务器建立通信。
由上可知,在图10实施例中所涉及的通信组件103、音频组件106以及输入/输出接口107、传感器组件108均可以作为图9实施例中的输入设备的实现方式。
本申请实施例提供了一种控制设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述控制设备执行如本申请实施例中一个或多个所述的设备远程调试方法。
本申请实施例提供了一种被调试设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述被调试设备执行如本申请实施例中一个或多个所述的设备远程调试方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种设备远程调试方法、一种设备远程调试装置、一种控制设备、一种被调试设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (30)
1.一种设备远程调试方法,其特征在于,包括:
与被调试设备建立映射关系;
确定调试请求数据,依据安全外壳SSH协议对所述调试请求数据进行封装并转发给所述被调试设备;
接收通过所述SSH协议封装的调试响应数据,解封所述封装的调试响应数据并展示。
2.根据权利要求1所述的方法,其特征在于,所述与被调试设备建立映射关系,包括:
在调试界面中选择被调试设备,发送对应的匹配指令给第一进程;
所述第一进程依据所述匹配指令查询所述被调试设备,建立与所述被调试设备的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述确定调试请求数据,依据安全外壳SSH协议对所述调试请求数据进行封装并转发给所述被调试设备,包括:
在调试界面中确定调试请求数据,将所述调试请求数据发送给第二进程;
所述第二进程依据SSH协议对所述调试请求数据进行封装,将封装的调试请求数据发送给第一进程;
所述第一进程依据所述映射关系,转发所述封装的调试请求数据给所述被调试设备。
4.根据权利要求3所述的方法,其特征在于,所述接收通过所述SSH协议封装的调试响应数据,解封所述封装的调试响应数据并展示,包括:
第一进程接收所述封装的调试响应数据,将所述封装的调试响应数据发送给第二进程;
第二进程依据所述SSH协议对所述封装的调试响应数据进行解封,得到对应的调试响应数据;
第二进程将所述调试响应数据发送给调试界面,在所述调试界面中展示所述调试响应数据。
5.根据权利要求1-4任一所述的方法,其特征在于,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
6.根据权利要求5所述的方法,其特征在于,还包括:
第二进程对通过所述SSH协议封装的调试请求数据进行加密;和/或
第二进程对通过所述SSH协议封装的调试响应数据进行解密。
7.一种设备远程调试方法,其特征在于,包括:
接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封;
执行解封得到的调试请求数据的对应操作,生成调试响应数据;
按照所述SSH协议对所述调试响应数据进行封装并转发。
8.根据权利要求7所述的方法,其特征在于,所述接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封,包括:
第三进程接收通过SSH协议封装的调试请求数据,将所述封装的调试请求数据发送给第四进程;
所述第四进程按照SSH协议对所述封装的调试请求数据进行解封,得到对应的调试请求数据。
9.根据权利要求7所述的方法,其特征在于,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
10.根据权利要求9所述的方法,其特征在于,所述执行解封得到的调试请求数据的对应操作,生成调试响应数据,包括:
第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
11.根据权利要求9所述的方法,其特征在于,所述执行解封得到的调试请求数据的对应操作,生成调试响应数据,包括:
第四进程执行调试命令对应的调试操作,生成相应的调试结果。
12.根据权利要求7所述的方法,其特征在于,所述按照所述SSH协议对所述调试响应数据进行封装并转发,包括:
第四进程按照SSH协议对所述调试响应数据进行封装,将封装的调试响应数据转发给第三进程;
所述第三进程发送所述封装的调试响应数据。
13.根据权利要求7-12任一所述的方法,其特征在于,还包括:
第四进程对通过所述SSH协议封装的调试请求数据进行解密;和/或
第四进程对通过所述SSH协议封装的调试响应数据进行加密。
14.一种设备远程调试装置,其特征在于,包括:
通信模块,用于与被调试设备建立映射关系;转发封装的调试请求数据给所述被调试设备;以及,接收通过所述SSH协议封装的调试响应数据;
操作模块,用于确定调试请求数据;以及展示调试响应数据;
协议处理模块,用于依据安全外壳SSH协议对所述调试请求数据进行封装;以及解封封装的调试响应数据。
15.根据权利要求14所述的装置,其特征在于,
所述操作模块,用于在调试界面中选择被调试设备,发送对应的匹配指令给第一进程;
所述通信模块,用于通过所述第一进程依据所述匹配指令查询所述被调试设备,建立与所述被调试设备的映射关系。
16.根据权利要求14所述的装置,其特征在于,
所述操作模块,用于在调试界面中确定调试请求数据,将所述调试请求数据发送给第二进程;
所述协议处理模块,用于通过第二进程依据SSH协议对所述调试请求数据进行封装,将封装的调试请求数据发送给第一进程;
所述通信模块,用于通过所述第一进程依据所述映射关系,转发所述封装的调试请求数据给所述被调试设备。
17.根据权利要求16所述的装置,其特征在于,
所述通信模块,用于通过第一进程接收所述封装的调试响应数据,将所述封装的调试响应数据发送给第二进程;
所述协议处理模块,用于通过第二进程依据所述SSH协议对所述封装的调试响应数据进行解封,得到对应的调试响应数据;第二进程将所述调试响应数据发送给调试界面;
所述操作模块,用于在所述调试界面中展示所述调试响应数据。
18.根据权利要求14-17任一所述的装置,其特征在于,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
19.根据权利要求18所述的装置,其特征在于,
所述协议处理模块,还用于通过第二进程对通过所述SSH协议封装的调试请求数据进行加密;和/或,通过第二进程对通过所述SSH协议封装的调试响应数据进行解密。
20.一种设备远程调试装置,其特征在于,包括:
代理模块,用于接收通过SSH协议封装的调试请求数据,按照SSH协议对所述封装的调试请求数据进行解封;以及,按照所述SSH协议对所述调试响应数据进行封装并转发;
协议服务模块,用于执行解封得到的调试请求数据的对应操作,生成调试响应数据。
21.根据权利要求20所述的装置,其特征在于,
所述代理模块,用于通过第三进程接收通过SSH协议封装的调试请求数据,将所述封装的调试请求数据发送给第四进程;
所述协议服务模块,用于通过所述第四进程按照SSH协议对所述封装的调试请求数据进行解封,得到对应的调试请求数据。
22.根据权利要求20所述的装置,其特征在于,所述调试请求数据包括:SSH连接请求和/或调试命令,所述调试响应数据包括:SSH连接结果和/或调试结果。
23.根据权利要求22所述的装置,其特征在于,
所述协议服务模块,用于通过第四进程依据SSH连接请求,调用SSH协议服务并生成相应的SSH连接结果。
24.根据权利要求22所述的装置,其特征在于,
所述协议服务模块,用于通过第四进程执行调试命令对应的调试操作,生成相应的调试结果。
25.根据权利要求20所述的装置,其特征在于,
所述协议服务模块,用于通过第四进程按照SSH协议对所述调试响应数据进行封装,将封装的调试响应数据转发给第三进程;
所述代理模块,用于通过所述第三进程发送所述封装的调试响应数据。
26.根据权利要求20-25任一所述的装置,其特征在于,
所述代理模块,还用于通过第四进程对通过所述SSH协议封装的调试请求数据进行解密;和/或,通过第四进程对通过所述SSH协议封装的调试响应数据进行加密。
27.一种控制设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述控制设备执行如权利要求1-6中一个或多个所述的设备远程调试方法。
28.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得控制设备执行如权利要求1-6中一个或多个所述的设备远程调试方法。
29.一种被调试设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述被调试设备执行如权利要求7-13中一个或多个所述的设备远程调试方法。
30.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得被调试设备执行如权利要求7-13中一个或多个所述的设备远程调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244463.2A CN109861950A (zh) | 2017-11-30 | 2017-11-30 | 设备远程调试方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244463.2A CN109861950A (zh) | 2017-11-30 | 2017-11-30 | 设备远程调试方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109861950A true CN109861950A (zh) | 2019-06-07 |
Family
ID=66889045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711244463.2A Pending CN109861950A (zh) | 2017-11-30 | 2017-11-30 | 设备远程调试方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109861950A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806976A (zh) * | 2019-10-24 | 2020-02-18 | 青岛英泰软件技术有限公司 | 远程推送shell和CMD命令的方法 |
CN112187869A (zh) * | 2020-09-03 | 2021-01-05 | 京东数字科技控股股份有限公司 | Iot设备的远程调试***、方法、电子设备及存储介质 |
US20210089419A1 (en) * | 2019-09-25 | 2021-03-25 | Alibaba Group Holding Limited | Debugging unit and processor |
CN113204494A (zh) * | 2021-05-29 | 2021-08-03 | 长沙市到家悠享家政服务有限公司 | 终端远程测试平台及方法、电子设备及可读介质 |
CN113722236A (zh) * | 2021-09-18 | 2021-11-30 | 网易(杭州)网络有限公司 | 游戏调试方法、装置、设备、存储介质及程序产品 |
WO2022247790A1 (zh) * | 2021-05-24 | 2022-12-01 | 深圳Tcl新技术有限公司 | 一种数据管理方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015168345A1 (en) * | 2014-05-02 | 2015-11-05 | Nec Laboratories America, Inc. | Multi-layer virtual infrastructure embedding procedure in software-defined flexible-grid transport networks |
CN105323598A (zh) * | 2014-07-28 | 2016-02-10 | 中兴通讯股份有限公司 | 一种机顶盒管理方法、装置及*** |
CN105722081A (zh) * | 2016-02-04 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 智能设备联网方法和装置 |
CN107040777A (zh) * | 2017-06-08 | 2017-08-11 | 深圳市创维软件有限公司 | 一种远程调试方法、机顶盒和服务器 |
-
2017
- 2017-11-30 CN CN201711244463.2A patent/CN109861950A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015168345A1 (en) * | 2014-05-02 | 2015-11-05 | Nec Laboratories America, Inc. | Multi-layer virtual infrastructure embedding procedure in software-defined flexible-grid transport networks |
CN105323598A (zh) * | 2014-07-28 | 2016-02-10 | 中兴通讯股份有限公司 | 一种机顶盒管理方法、装置及*** |
CN105722081A (zh) * | 2016-02-04 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 智能设备联网方法和装置 |
CN107040777A (zh) * | 2017-06-08 | 2017-08-11 | 深圳市创维软件有限公司 | 一种远程调试方法、机顶盒和服务器 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210089419A1 (en) * | 2019-09-25 | 2021-03-25 | Alibaba Group Holding Limited | Debugging unit and processor |
US11755441B2 (en) * | 2019-09-25 | 2023-09-12 | Alibaba Group Holding Limited | Debugging unit and processor |
CN110806976A (zh) * | 2019-10-24 | 2020-02-18 | 青岛英泰软件技术有限公司 | 远程推送shell和CMD命令的方法 |
CN110806976B (zh) * | 2019-10-24 | 2022-03-22 | 青岛英泰软件技术有限公司 | 远程推送shell和CMD命令的方法 |
CN112187869A (zh) * | 2020-09-03 | 2021-01-05 | 京东数字科技控股股份有限公司 | Iot设备的远程调试***、方法、电子设备及存储介质 |
WO2022247790A1 (zh) * | 2021-05-24 | 2022-12-01 | 深圳Tcl新技术有限公司 | 一种数据管理方法、装置、设备和存储介质 |
CN113204494A (zh) * | 2021-05-29 | 2021-08-03 | 长沙市到家悠享家政服务有限公司 | 终端远程测试平台及方法、电子设备及可读介质 |
CN113722236A (zh) * | 2021-09-18 | 2021-11-30 | 网易(杭州)网络有限公司 | 游戏调试方法、装置、设备、存储介质及程序产品 |
CN113722236B (zh) * | 2021-09-18 | 2023-08-08 | 网易(杭州)网络有限公司 | 游戏调试方法、装置、设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109861950A (zh) | 设备远程调试方法、装置、设备和存储介质 | |
TWI719312B (zh) | 關於物聯網設備的資訊交互方法、裝置及設備 | |
CN109246053A (zh) | 一种数据通信方法、装置、设备和存储介质 | |
US9614890B2 (en) | Acquiring and correlating web real-time communications (WEBRTC) interactive flow characteristics, and related methods, systems, and computer-readable media | |
CN109936547A (zh) | 身份认证方法、***及计算设备 | |
CN109428911A (zh) | 设备控制方法、装置、终端设备和操作*** | |
CN109587097A (zh) | 一种实现安全访问内部网络的***、方法和装置 | |
DE102015121223A1 (de) | Sicherer Verbindungsaufbau | |
CN108681662A (zh) | 一种安装程序的方法及装置 | |
CN104717218A (zh) | 一种Wifi认证***及方法 | |
CN109688573A (zh) | 蓝牙设备间的交互方法及蓝牙设备 | |
CN109547567B (zh) | 代理连接方法和装置 | |
CN109862560A (zh) | 一种蓝牙认证方法、装置、设备和介质 | |
CN108093058B (zh) | 演示状态同步方法、装置与*** | |
CN113329399A (zh) | 数据传输、配网与管理方法、设备、***及存储介质 | |
CN107995351A (zh) | 通话方法及装置 | |
CN110278092A (zh) | 基于mqtt协议的路由器远程控制方法和*** | |
CN112700014B (zh) | 部署联邦学习应用的方法、装置、***和电子设备 | |
CN104349202B (zh) | 视频获取方法与装置 | |
CN113301537A (zh) | 用于建立通信连接的方法、装置、电子设备以及存储介质 | |
CN106488483B (zh) | 一种配置wifi网关设备的方法及相应的网关设备 | |
US10178087B2 (en) | Trusted pin management | |
CN107979655A (zh) | 访问控制方法、接入控制装置和接入设备 | |
CN105681256A (zh) | 音频通信方法以及音频通信应用设备 | |
WO2017124728A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |