本发明涉及计算机技术领域,更具体的说是涉及一种基于虚拟网络链路的异地调试端部署方法。
背景技术:
在基于终端的客户端软件产品上线后,如果出现了一些问题,我们现在的调试手段一般是通过记录日志上传日志的方式来发现问题和解决问题。但是,现有的调试部署方法存下以下缺陷:
1、使用teamviewer之类的远程控制工具,需要打扰终端用户配合打开远程控制工具,只支持一些常见的桌面系统,安卓系统无法支持。
2、通过日志上传方式定时主动上传日志,如果预先设置的日志埋点中不包含我们需要的信息,我们就很难去发现并解决。并且由于日志方式缺少交互,即使发现了问题,也无法实时的去收集到针对问题需要的一些客户环境信息,除非去客户现场进行调试
3、到客户现场进行调试和维修,成本太高。
技术实现要素:
针对以上问题,本发明的目的在于提供一种基于虚拟网络链路的异地调试端部署方法,使用中转服务器的方式,客户端和异地调试端都主动与中转服务器建立tcp连接,打通网络层的虚拟链路,实现客户端的异地调试。
本发明为实现上述目的,通过以下技术方案实现:一种基于虚拟网络链路的异地调试端部署方法,包括如下步骤:
s1:在客户端和异地调试端直接设置中转服务器,在中转服务器上安装预设转发程序,并开放监听tcp端口;
s2:在异地调试端和客户端分别部署用于连接中转服务器的预设组件;
s3:建立异地调试端与中转服务器的连接通道;
s4:借助中转服务器建立异地调试端与客户端的虚拟链路,并进行远程调试。
进一步,所述tcp端口包括:
第一端口,用于与客户端建立tcp连接打通客户端到服务端的数据通道,中转服务器与客户端的数据传输采用私有加密协议;
第二端口,用于创建为通用http代理连接,与异地调试端建立数据通道;
第三端口,用于创建为通用socks5代理连接,与异地调试端建立数据通道。
进一步,所述步骤s3具体为:
异地调试端使用通用的http和socks5代理程序连接中转服务器,或通过在预设调试工具上配置socks5或http来连接中转服务器。
进一步,所述步骤s4包括:
s41:客户端的管控系统向客户端下发远程调试命令;
s42:客户端收到服务端下发的远程调试命令后,连接中转服务器指定的tcp端口,建立一个tcp连接,并通过心跳一直保持连接;
s43:异地调试端在连接中转服务器的同时,在本地启动远程桌面服务软件,等待与客户端的连接;
s44:异地调试端通过管控系统获取连接客户端虚拟链路的用户名密码,并直接使用第三方http或socks5客户端转发程序通过用户名密码连接到中转服务器,打通异地调试端与客户端的虚拟网络链路;
s45:在客户端配置远程桌面服务软件,并建立客户端端口到异地调试端监听端口的转发映射;
s46:在异地调试端使用远程桌面服务软件直接连接监听端口,通过中转服务器连接到映射的客户端端口,并启动调试。
进一步,所述步骤s46之后还包括:
s47:完成调试后,通过管控平台下发远程调试关闭命令。
进一步,所述步骤s47之后还包括:
s48:客户端接收到远程调试关闭命令后,关闭与远程中转服务器tcp连接,并关闭相应的和调试相关的服务进程。
进一步,所述远程调试命令包括:用户名、密码和中转服务器地址。
进一步,所述远程桌面服务软件包括:安卓调试桥或ssh组件。
安卓调试桥(androiddebugbridge)tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。ssh组件(secureshell)是一种通用的、功能强大的、基于软件的网络安全解决方案。是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用ssh协议可以有效防止远程管理过程中的信息泄露问题。通过ssh可以对所有传输的数据进行加密,也能够防止dns欺骗和ip欺骗。
对比现有技术,本发明有益效果在于:
1、本发明不需要针对产品业务定向开发需要调试目标埋点,直接利用系统本身的调试和管理功能,或者第三方程序的调试和管理功能,并且可收集获得更多需要调试的设备系统的实时环境信息,并以交互方式进行调试。
2、与内部集成的虚拟网络链路连接程序和普通内网穿透工具相比,本发明支持多用户连接和管理,并且可以通过使用通用的代理协议,更方便的让第三方软件接入到虚拟网络链路中辅助进行调试。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1是本发明的方法流程图。
附图2是本发明的虚拟链路的系统结构图。
具体实施方式
下面结合附图对本发明的具体实施方式做出说明。
实施例一:
如图1所示的一种基于虚拟网络链路的异地调试端部署方法,包括如下步骤:
步骤1:在客户端和异地调试端直接设置中转服务器,在中转服务器上安装预设转发程序,并开放监听tcp端口。
步骤2:在异地调试端和客户端分别部署用于连接中转服务器的预设组件。
步骤3:建立异地调试端与中转服务器的连接通道。
异地调试端使用通用的http和socks5代理程序连接中转服务器,或通过在预设调试工具上配置socks5或http来连接中转服务器。
步骤4:客户端的管控系统向客户端下发远程调试命令。
步骤5:客户端收到服务端下发的远程调试命令后,连接中转服务器指定的tcp端口,建立一个tcp连接,并通过心跳一直保持连接。
步骤6:异地调试端在连接中转服务器的同时,在本地启动远程桌面服务软件,等待与客户端的连接。
步骤7:异地调试端通过管控系统获取连接客户端虚拟链路的用户名密码,并直接使用第三方http或socks5客户端转发程序通过用户名密码连接到中转服务器,打通异地调试端与客户端的虚拟网络链路。
步骤8:在客户端配置远程桌面服务软件,并建立客户端端口到异地调试端监听端口的转发映射。
步骤9:在异地调试端使用远程桌面服务软件直接连接监听端口,通过中转服务器连接到映射的客户端端口,并启动调试。
步骤10:完成调试后,通过管控平台下发远程调试关闭命令。
步骤11:客户端接收到远程调试关闭命令后,关闭与远程中转服务器tcp连接,并关闭相应的和调试相关的服务进程。
其中,远程调试命令包括:用户名、密码和中转服务器地址。远程桌面服务软件包括:安卓调试桥或ssh组件。
实施例二:
本实施例提供了一种基于虚拟网络链路的异地调试端部署方法,包括:
通过中转服务器部署客户端和异地调试端之间的虚拟链路系统,然后完成虚拟链路的连接,并进行异地调试。具体如下:
一、虚拟链路系统部署:
1、中转服务器安装转发程序,并开放监听三个tcp端口,一个端口用于与客户端建立tcp连接打通客户端到服务端的数据通道,数据传输采用私有加密协议,另外两个端口分别创建为通用http和socks5的代理,用于与异地调试端建立数据通道。
2、客户端在软件内部集成连接中转服务器的模块,并在软件部署的时候一同部署到客户端上。
3、异地调试端使用通用的http和socks5代理程序连接中转服务器,或者直接在调试工具上配置socks5或http来连接中转服务器。
二、虚拟链路连接流程:
1、客户端管控系统下发远程调试命令给客户端,下发的远程调试命令包含用户名、密码、中转服务器地址,用户名密码用于区分不通的客户端设备(可能存在多台设备同时进行调试)。
2、客户端在收到下发的远程调试命令后,连接中转服务器指定的tcp端口,建立一个tcp连接,并通过心跳一直保持连接。
3、异地调试端在连接中转服务器的同时,在本地打开adb(安卓调试桥)或ssh组件、远程桌面服务等,等待连接到客户端。
4、异地调试端通过管控平台获取目标调试调试客户端虚拟链路的用户名密码,并直接使用第三方http或socks5客户端转发程序使用获取到的用户名密码连接到中转服务器,从而异地调试端与客户端的虚拟网络链路。
5、通过第三方http或socks5配置adb、ssh、或远程桌面的客户端端口到异地调试端监听端口的转发映射。
6、使用adb、ssh、或远程桌面的异地调试端直接连接本地映射的端口,将会通过中转服务器连接到客户端的响应的服务端口,从而达到使用虚拟网络链路穿透客户端内网,连接目标客户端进行调试的目的。
7、在完成调试后,通过客户端管控平台下发远程调试关闭命令。
8、客户端接收到远程调试关闭命令后,关闭与远程中转服务器tcp连接,并关闭相应的和调试相关的服务进程。
由此,完成了异地调试端的部署和调试,在上述虚拟链路连接流程,提供了一种虚拟链路的系统结构,如图2所示。
结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。
1.一种基于虚拟网络链路的异地调试端部署方法,其特征在于,包括如下步骤:
s1:在客户端和异地调试端直接设置中转服务器,在中转服务器上安装预设转发程序,并开放监听tcp端口;
s2:在异地调试端和客户端分别部署用于连接中转服务器的预设组件;
s3:建立异地调试端与中转服务器的连接通道;
s4:借助中转服务器建立异地调试端与客户端的虚拟链路,并进行远程调试。
2.根据权利要求1所述的基于虚拟网络链路的异地调试端部署方法,其特征在于:所述tcp端口包括:
第一端口,用于与客户端建立tcp连接打通客户端到服务端的数据通道,中转服务器与客户端的数据传输采用私有加密协议;
第二端口,用于创建为通用http代理连接,与异地调试端建立数据通道;
第三端口,用于创建为通用socks5代理连接,与异地调试端建立数据通道。
3.根据权利要求1所述的基于虚拟网络链路的异地调试端部署方法,其特征在于,所述步骤s3具体为:
异地调试端使用通用的http和socks5代理程序连接中转服务器,或通过在预设调试工具上配置socks5或http来连接中转服务器。
4.根据权利要求1所述的基于虚拟网络链路的异地调试端部署方法,其特征在于,所述步骤s4包括:
s41:客户端的管控系统向客户端下发远程调试命令;
s42:客户端收到服务端下发的远程调试命令后,连接中转服务器指定的tcp端口,建立一个tcp连接,并通过心跳一直保持连接;
s43:异地调试端在连接中转服务器的同时,在本地启动远程桌面服务软件,等待与客户端的连接;
s44:异地调试端通过管控系统获取连接客户端虚拟链路的用户名密码,并直接使用第三方http或socks5客户端转发程序通过用户名密码连接到中转服务器,打通异地调试端与客户端的虚拟网络链路;
s45:在客户端配置远程桌面服务软件,并建立客户端端口到异地调试端监听端口的转发映射;
s46:在异地调试端使用远程桌面服务软件直接连接监听端口,通过中转服务器连接到映射的客户端端口,并启动调试。
5.根据权利要求4所述的基于虚拟网络链路的异地调试端部署方法,其特征在于,所述步骤s46之后还包括:
s47:完成调试后,通过管控平台下发远程调试关闭命令。
6.根据权利要求5所述的基于虚拟网络链路的异地调试端部署方法,其特征在于,所述步骤s47之后还包括:
s48:客户端接收到远程调试关闭命令后,关闭与远程中转服务器tcp连接,并关闭相应的和调试相关的服务进程。
7.根据权利要求4所述的基于虚拟网络链路的异地调试端部署方法,其特征在于,所述远程调试命令包括:用户名、密码和中转服务器地址。
8.根据权利要求4所述的基于虚拟网络链路的异地调试端部署方法,其特征在于,所述远程桌面服务软件包括:安卓调试桥或ssh组件。
技术总结