一种Linux虚拟机Socket监听的检测方法及其系统技术方案

技术编号:24409411 阅读:28 留言:0更新日期:2020-06-06 08:31
本发明专利技术公开一种Linux虚拟机Socket监听的检测方法及其系统,检测方法步骤包括:云平台通过连接TCP Socket常驻程序,并发出相关调用请求;云平台的TCP socket监听客户端对虚拟机的socket监听地址ip进行监听,或者云平台需要检测虚拟机上的unix socket文件监听,unix socket文件路径为path;TCP Socket常驻程序连接unix socket文件并发送监听命令;QEMU‑KVM进程将监听命令输入至虚拟机的qemu guest agent应用程序;qemu guest agent应用程序获取虚拟机相关文件,并将文件保存到TCP Socket常驻程序内且另存为字符串;TCP Socket常驻程序在字符串的local_address列中搜索socket地址的关键字ip,或者在字符串的Path列中搜索socket地址的关键字path,从而确定socket在是否监听中。本发明专利技术无需使用Socket客户端去连接虚拟机Socket监听,无需登录虚拟机操作系统,达到简单高效用时短效果。

A detection method and system of socket monitoring in Linux virtual machine

【技术实现步骤摘要】
一种Linux虚拟机Socket监听的检测方法及其系统
本专利技术涉及云平台上Linux虚拟机
,特别涉及一种Linux虚拟机Socket监听的检测方法及其系统。
技术介绍
KVM(全称是Kernel-basedVirtualMachine)是基于虚拟化扩展(IntelVT或者AMD-V)的X86硬件的开源的Linux原生的全虚拟化解决方案。Socket又称"套接字",一组编程接口(API)。介于传输层和应用层,向应用层提供统一的编程接口。应用层不必了解TCP/IP协议细节,直接通过对Socket接口函数的调用完成数据在IP网络的传输。Socket在创建时需要指定地址域和类型,只有当两个进程的地址和类型都相同时他们才可能进行通信。两种常见的地址域包括Unix域和Internet域,Unix域将socket当做文件系统下的一个文件,而Internet域适用于不同主机中的进程通信,在Internet域下,socket需要指定地址和端口号。QemuGuestAgent,简称qga,是一个运行在虚拟机内部的普通应用程序(可执行文件名称默认为qemu-ga,服务名称默认为qemu-guest-agent),其目的是实现一种宿主机和虚拟机进行交互的方式,这种方式不依赖于网络,而是依赖于virtio-serial(默认首选方式)或者isa-serial,而QEMU则提供了串口设备的模拟及数据交换的通道,最终呈现出来的是一个串口设备(虚拟机内部)和一个unixsocket文件(宿主机上)。qga通过读写串口设备与宿主机上的socket通道进行交互,宿主机上可以使用普通的unixsocket读写方式对socket文件进行读写,最终实现与qga的交互。目前云平台上提供的镜像大部分都会包含有基于Socket的应用,这些应用服务会在虚拟机交付给客户时就已经开启。如何检测虚拟机里的Socket监听,目前通常的做法有以下两种:1、通过一个外部的Socket客户端去连接虚拟机里的Socket服务端来检测;2、登录虚拟机操作系统里查看。上述方法存在以下弊端:1、外部连接无法排除网络环境,以及客户虚拟机开启防火墙等影响;2、登录虚拟机操作系统需要客户自行检查。
技术实现思路
本专利技术要解决的技术问题在于,提供一种Linux虚拟机Socket监听的检测方法及其系统,无需使用Socket客户端去连接虚拟机Socket监听,无需登录进去虚拟机操作系统,达到简单高效用时短效果,并且针对KVM虚拟化平台所有Linux操作系统都可以使用,保证了云管理平台交付虚拟机所承载基于Socket的应用服务可用性,提升了云管理平台的用户体验,为云管理平台实现面向应用的交付模式提供了一种检测保障的方式。为解决上述技术问题,本专利技术提供如下技术方案:一种Linux虚拟机Socket监听的检测方法,包括以下步骤:S1、云平台通过TCPsocket监听客户端连接虚拟机所在宿主机的TCPSocket常驻程序,并发出相关调用请求;S2、云平台的TCPsocket监听客户端对虚拟机的socket监听地址ip1进行监听;TCPSocket常驻程序将socket监听地址ip1转成大写十六进制IP地址ip4;S3、TCPSocket常驻程序连接unixsocket文件并发送监听命令;S4、QEMU-KVM进程将监听命令转发并输入至虚拟机的qemuguestagent应用程序;qemuguestagent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其保存到TCPSocket常驻程序内且另存为字符串A;S5、TCPSocket常驻程序在字符串A的local_address列中搜索socket地址的关键字ip4,若存在关键字ip4,则确定该虚拟机的socket在监听中。进一步地,所述步骤S1前还包括步骤S0、在云平台上创建TCPsocket监听客户端,并通过TCPsocket监听客户端连接宿主机;在宿主机上创建虚拟机,以及安装TCPSocket常驻程序、unixsocket文件和QEMU-KVM进程;虚拟机安装有qemuguestagent应用程序,并存储有proc文件、net文件和tcp文件。进一步地,所述所述步骤S2中的TCPSocket常驻程序将socket监听地址ip1转成大写十六进制IP地址ip4,其具体为:TCPSocket常驻程序将socket监听地址ip1转成主机字节序数字IP地址ip2,再将ip2转成网络字节序数字IP地址ip3,最后ip3转成大写十六进制IP地址ip4。进一步地,所述步骤S4中:qemuguestagent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其进行base64解密后保存到TCPSocket常驻程序内且另存为字符串A。本专利技术的另一目的是提供一种Linux虚拟机Socket监听的检测方法,包括以下步骤:S11、云平台需要检测虚拟机上的unixsocket文件监听,unixsocket文件路径为path;S12、云平台通过TCPsocket监听客户端连接虚拟机所在宿主机的TCPSocket常驻程序,并发出相关调用请求;S13、TCPSocket常驻程序连接unixsocket文件并发送监听命令;S14、QEMU-KVM进程将监听命令转发并输入至虚拟机的qemuguestagent应用程序;qemuguestagent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其保存到TCPSocket常驻程序内且另存为字符串B;S15、TCPSocket常驻程序在字符串B的Path列中搜索socket地址的关键字path,若存在键字path,则确定该虚拟机的socket在监听中。作为优选的,所述步骤S11前还包括步骤S10、在云平台上创建TCPsocket监听客户端,并通过TCPsocket监听客户端连接宿主机;在宿主机上创建虚拟机,以及安装TCPSocket常驻程序、unixsocket文件和QEMU-KVM进程;虚拟机安装有qemuguestagent应用程序,并存储有proc文件、net文件和tcp文件。作为优选的,所述步骤S14中:qemuguestagent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其进行base64解密后保存到TCPSocket常驻程序内且另存为字符串B。本专利技术的又一目的是提供一种Linux虚拟机Socket监听的检测系统,包括相互连接的云平台和宿主机,所述云平台安装有TCPsocket监听客户端;所述宿主机上安装有虚拟机,以及安装有TCPSocket常驻程序模块、unixsocket文件模块和QEMU-KVM进程模块;所述虚拟机安装有qemuguestagent应用程序模块,并存储有proc文件模块、net文件模块和tcp文件模块;所述TCPsocket监听客户端用于连接TCPSocket常驻本文档来自技高网
...

【技术保护点】
1.一种Linux虚拟机Socket监听的检测方法,其特征在于,包括以下步骤:/nS1、云平台通过TCP socket监听客户端连接虚拟机所在宿主机的TCP Socket常驻程序,并发出相关调用请求;/nS2、云平台的TCP socket监听客户端对虚拟机的socket监听地址ip1进行监听;TCPSocket常驻程序将socket监听地址ip1转成大写十六进制IP地址ip4;/nS3、TCP Socket常驻程序连接unix socket文件并发送监听命令;/nS4、QEMU-KVM进程将监听命令转发并输入至虚拟机的qemu guest agent应用程序;qemu guest agent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其保存到TCP Socket常驻程序内且另存为字符串A;/nS5、TCP Socket常驻程序在字符串A的local_address列中搜索socket地址的关键字ip4,若存在关键字ip4,则确定该虚拟机的socket在监听中。/n

【技术特征摘要】
1.一种Linux虚拟机Socket监听的检测方法,其特征在于,包括以下步骤:
S1、云平台通过TCPsocket监听客户端连接虚拟机所在宿主机的TCPSocket常驻程序,并发出相关调用请求;
S2、云平台的TCPsocket监听客户端对虚拟机的socket监听地址ip1进行监听;TCPSocket常驻程序将socket监听地址ip1转成大写十六进制IP地址ip4;
S3、TCPSocket常驻程序连接unixsocket文件并发送监听命令;
S4、QEMU-KVM进程将监听命令转发并输入至虚拟机的qemuguestagent应用程序;qemuguestagent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其保存到TCPSocket常驻程序内且另存为字符串A;
S5、TCPSocket常驻程序在字符串A的local_address列中搜索socket地址的关键字ip4,若存在关键字ip4,则确定该虚拟机的socket在监听中。


2.根据权利要求1所述的一种Linux虚拟机Socket监听的检测方法,其特征在于,所述步骤S1前还包括步骤S0、在云平台上创建TCPsocket监听客户端,并通过TCPsocket监听客户端连接宿主机;在宿主机上创建虚拟机,以及安装TCPSocket常驻程序、unixsocket文件和QEMU-KVM进程;虚拟机安装有qemuguestagent应用程序,并存储有proc文件、net文件和tcp文件。


3.根据权利要求1所述的一种Linux虚拟机Socket监听的检测方法,其特征在于,所述步骤S2中的TCPSocket常驻程序将socket监听地址ip1转成大写十六进制IP地址ip4,其具体为:TCPSocket常驻程序将socket监听地址ip1转成主机字节序数字IP地址ip2,再将ip2转成网络字节序数字IP地址ip3,最后ip3转成大写十六进制IP地址ip4。


4.根据权利要求1所述的一种Linux虚拟机Socket监听的检测方法,其特征在于,所述步骤S4中:qemuguestagent应用程序获取虚拟机的proc文件或者net文件或者tcp文件,并将其进行base64解密后保存到TCPSocket常驻程序内且另存为字符串A。


5.一种Linux虚拟机Socket监听的检测方法,其特征在于,包括以下步骤:
S11、云平台需要检测虚拟机上的unixsocket文件监听,unixsocket文件路径为path;
S12、云平台通过TCPsocket监听客户端连接虚拟机所在宿主机的TCPSocket常驻程序,并发出相关调用请求;
S13、TCPSocket常驻程序连接unixsocket文件并发送监听命令;
S14、QEMU-KVM进程将监听命令转发并输入至虚拟机的qem...

【专利技术属性】
技术研发人员:邓学华史伟闵宇
申请(专利权)人:广东睿江云计算股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1