发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于反向代理实现网络测试的方法。
依据本发明的一个方面,提供了一种基于反向代理实现网络测试的方法,其中,该方法适用于:通过在位于局域网中的终端设备和位于广域网中的主代理服务器之间建立反向代理进行网络测试,该方法包括:
在所述终端设备上启动第一端口,在所述主代理服务器上启动第二端口;
在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;
通过所述主代理服务器的第二端口经由所述网络隧道发送网络测试请求至所述终端设备的第一端口;
所述终端设备根据所述网络测试请求进行相应的网络访问操作,将所述网络访问操作的结果反馈至所述主代理服务器。
可选地,该方法进一步包括:
所述终端设备接收应用服务器通过所述网络隧道发送的网络测试请求;其中,所述应用服务器将网络测试请求发送到所述主代理服务器上的所述第二端口;
所述终端设备根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;其中,所述应用服务器从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。
可选地,在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道包括:
根据连接参数在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;其中,所述连接参数包括:终端设备的登录账户和密码,主代理服务器的广域网IP地址和第二端口的端口号,启动的所述终端设备的第一端口的端口号。
可选地,可选地,该方法进一步包括:在终端设备上部署网络隧道建立客户端和反向代理服务端;
由反向代理服务端在终端设备上启动第一端口;
由网络隧道建立客户端在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;
由反向代理服务端接收来自网络隧道的网络测试请求,根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈。
可选地,该方法包括:
所述网络隧道建立客户端为SSH客户端;
所述反向代理服务端为Squid服务端。
可选地,该方法进一步包括:
在终端设备上部署自动重连客户端,
当所建立的网络隧道断开时,所述自动重连客户端启动所述网络隧道建立客户端,所述网络隧道建立客户端根据所述连接参数重新将所述第一端口映射到主代理服务器上的所述第二端口上,重新建立网络隧道。
可选地,所述自动重连客户端为AUTOSSH客户端。
可选地,所述网络测试请求包括:网速测试请求或网络质量测试请求;
当所述网络测试请求为网络质量测试请求时,所述终端设备根据所述网络测试请求进行相应的网络访问操作包括:
终端设备发送测试数据包到目的服务器并接收目的服务器的反馈包,根据所述测试数据包的发送时刻与反馈包的接收时刻,计算终端设备与所述目的服务器之间的网络时延;以及根据测试数据包的发送数目与反馈包的数目计算终端设备与所述目的服务器之间的丢包率;
或者,
当所述网络测试请求为网速测试请求时,所述终端设备根据所述网络测试请求进行相应的网络访问操作包括:
终端设备从目的服务器下载指定大小的数据包,根据所述数据包的大小和下载完成所需的时间,计算与目的服务器之间的下载网速。
可选地,所述主代理服务器根据所述网络访问操作的结果确定所述网络测试结果。
依据本发明的一个方面,提供了一种基于反向代理实现网络测试的终端设备,其中,该终端设备位于局域网中,与位于广域网中的主代理服务器之间建立反向代理,进行网络测试,该终端设备包括:
反向代理模块,适用于在终端设备上启动第一端口;
网络隧道建立模块,适用于在所述第一端口与主代理服务器上的第二端口之间建立网络隧道;
反向代理模块,适用于接收所述主代理服务器通过所述第二端口经由所述网络隧道发送至所述第一端口的网络测试访问请求;根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果反馈到主代理服务器。
可选的,反向代理模块,进一步适用于接收应用服务器通过所述网络隧道发送的网络测试请求;其中,所述应用服务器将网络测试请求发送到所述主代理服务器上的所述第二端口;
反向代理模块,适用于根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;其中,所述应用服务器从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。
可选的,网络隧道建立模块,适用于根据连接参数在所述第一端口与主代理服务器的第二端口之间建立网络隧道;其中,所述连接参数包括:终端设备的登录账户和密码,主代理服务器的广域网IP地址和第二端口的端口号,启动的所述终端设备的第一端口的端口号。
可选的,所述网络隧道建立模块为SSH客户端;
所述反向代理模块为Squid服务端。
可选的,该终端设备进一步包括:自动重连模块,
自动重连模块,适用于当所建立的网络隧道断开时,所述自动重连模块启动所述网络隧道建立模块,所述网络隧道建立模块根据所述连接参数重新将所述第一端口映射到主代理服务器上的所述第二端口上,重新建立网络隧道。
可选的,自动重连模块为AUTOSSH客户端。
可选的,所述网络测试请求包括:网速测试请求或网络质量测试请求;
当所述网络测试请求为网络质量测试请求时,反向代理模块,适用于发送测试数据包到所述目的服务器并等待目的服务器的反馈,根据所述测试数据包的发送时刻与测试数据包反馈的接收时刻,计算与所述目的服务器之间的网络时延;以及根据测试数据包的发送数目与测试数据包的反馈的数目计算与所述目的服务器之间的网络质量;
或者,
当所述网络测试请求为网速测试请求时,反向代理模块,适用于从目的服务器下载指定大小的数据包,根据所述数据包的大小和下载完成所需的时间,计算与目的服务器之间的下载网速。
依据本发明的一个方面,提供了一种基于反向代理实现网络测试的***,其中,该***包括:具有广域网IP地址的主代理服务器和上述中任意一项所述的终端设备。
可选的,所述主代理服务器上部署有网络隧道建立服务端,
所述主代理服务器,适用于通过所述网络隧道建立服务端建立与终端设备之间的网络隧道;向终端设备发送网络测试请求,以及接收终端设备返回的根据所述网络测试请求进行相应的网络访问操作的网络访问操作的结果。
可选的,该***进一步包括:应用服务器;
所述应用服务器,适用于通过所述网络隧道将网络测试请求发送到主代理服务器上的所述第二端口;使得所述终端设备根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;
所述应用服务器,适用于从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。
根据本发明的提供的技术方案,通过在局域网中部署的终端设备中安装网络隧道建立客户端和反向代理服务端,在主代理服务器上部署网络隧道建立服务器。通过连接参数将终端设备上的第一端口映射到主代理服务器上的第二端口上,建立主代理服务器与终端设备之间的网络隧道。主代理服务器能够通过该网络隧道发送网络测试请求到对应的终端设备,并且获取该终端设备中的反向代理服务器根据网络测试请求进行相应的网络访问操作之后的所反馈的操作结果。解决了在部署全国各地网络测试环境进行网络测试,需要在全国各地部署IDC机房所需的高成本的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种基于反向代理实现网络测试的方法的流程图;本方法适用于:通过在位于局域网中的终端设备和位于广域网中的主代理服务器之间建立反向代理进行网络测试,参见图1,该方法包括如下步骤。
步骤S101,在终端设备上启动第一端口,在主代理服务器上启动第二端口。
步骤S102,在终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道。
步骤S103,通过主代理服务器的第二端口经由网络隧道发送网络测试请求至所述终端设备的第一端口。
步骤S104终端设备根据网络测试请求进行相应的网络访问操作,将所述网络访问操作的结果反馈至所述主代理服务器。
本发明提供的图1所示的技术方案中,通过在局域网中部署的终端设备中安装网络隧道建立客户端和反向代理服务端,在主代理服务器上部署网络隧道建立服务器。通过连接参数将终端设备上的第一端口映射到主代理服务器上的第二端口上,建立主代理服务器与终端设备之间的网络隧道。主代理服务器能够通过该网络隧道发送网络测试请求到对应的终端设备,并且获取该终端设备中的反向代理服务器根据网络测试请求进行相应的网络访问操作之后的所反馈的操作结果。解决了在部署全国各地网络测试环境进行网络测试,需要在全国各地部署IDC机房所需的高成本的问题。
图2示出了根据本发明一个实施例的一种基于反向代理实现网络测试的方法的详细流程图;该方法基于反向代理建立终端设备与主代理服务器之间的网络隧道,并以此实现网络测试。其中,通过反向代理可见建立处于局域网中的终端设备与处于广域网中的主代理服务器之间的网络隧道,进而建立终端设备与主代理服务器之间的通信。
参见图2所示,该方法包括如下步骤。
步骤S201,启动安装在主代理服务器上的网络隧道建立服务端,在主代理服务器上启动第二端口。
在本发明的一种实施例中,在主代理服务器上安装网络隧道建立服务端,便于在启动网络隧道建立服务端之后,可以实现允许任意来源连接该第二端口。即便于与终端设备建立网络隧道。
在本发明的一种具体实施例中,安装在主代理服务器上的网络隧道建立服务端为SSH服务端。
步骤S202,启动安装在终端设备上的反向代理服务端,启动安装在终端设备上的网络隧道建立客户端,在终端设备上启动第一端口。
在本发明的一种实施例中,在启动所述安装在终端设备上的反向代理服务端之后,该反向代理服务端会自动启动该终端设备上的第一端口。
在本发明的一种实施例中,安装在终端设备上的反向代理服务端为Squid服务端。
步骤S203,在终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道。
在本发明的一种实施例中,在启动安装在终端设备上的网络隧道建立客户端之后,网络隧道建立客户端与安装在主代理服务器上的网络隧道建立服务器建立连接,即通过网络隧道建立客户端与网络隧道建立服务端将终端设备上的第一端口映射到主代理服务器上的第二端口上,进而建立终端设备的第一端口与主代理服务器的第二端口之间的网络隧道。
在本发明的一种实施例中,部署在终端设备上的网络隧道建立客户端为SSH客户端。在网络隧道建立过程中,具体根据连接参数在终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;其中,连接参数包括:终端设备的登录账户和密码,主代理服务器的广域网IP地址和第二端口的端口号,启动的所述终端设备的第一端口的端口号。
步骤S204,通过主代理服务器的第二端口经由网络隧道发送网络测试请求至终端设备的第一端口。
步骤S205,终端设备根据网络测试请求进行相应的网络访问操作,将所述网络访问操作的结果反馈至所述主代理服务器。
在步骤S204和步骤S205中,在本发明的一种实施例中,由终端设备中的反向代理服务端接收来自网络隧道的网络测试请求,并且由反向代理服务端根据网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过网络隧道进行反馈。在反馈的过程中,将网络访问操作的结果反馈到终端设备的第一端口上,使得主代理服务器能够从第二端口中获取该网络访问操作结果。
步骤S206,应用服务器通过主代理服务器上的网络隧道向终端设备发送网络测试请求。
在本发明的具体实施过程中,不会只有主代理服务器发送网络测试请求,部署在主代理服务器周围的,与主代理服务器在逻辑上连接的应用服务器也会发送网络测试请求,使得终端设备进行相应的网络访问操作。
在本发明的一种实施例中,终端设备接收应用服务器通过网络隧道发送的网络测试请求;其中,应用服务器将网络测试请求发送到主代理服务器上的第二端口;终端设备从主代理服务器上的第二端口获取所述网络测试请求。
步骤S207,终端设备根据网络测试请求进行相应的网络访问操作,将所述网络访问操作的结果反馈至所述主代理服务器。
在本发明的一种实施例中,终端设备根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;其中,所述应用服务器从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。
在本发明的一种较佳实施例中,为了解决在出现故障导致网络隧道断开的问题,以及在网络隧道断开之后,能够自动进行重连,避免用户再次进行手动连接所造成的效率低下的问题。该方法进一步包括:在终端设备上部署自动重连客户端。其中,当所建立的网络隧道断开时,自动重连客户端启动网络隧道建立客户端,网络隧道建立客户端根据所述连接参数重新将所述第一端口映射到主代理服务器上的所述第二端口上,重新建立网络隧道。
在本发明的一种具体实施例中,所述自动重连客户端为AUTOSSH客户端。较佳的,在终端设备本地保存登录脚本,在登录脚本中保存连接参数。当终端设备与主代理服务器之间的网络隧道断开之后,自动重连客户端重新启动,从本地保存的登录脚本中读取连接参数,根据连接参数与主代理服务器上的第二端口建立网络隧道。
在本发明的一种实施例中,网络测试请求包括:网速测试请求或网络质量测试请求。其中,网速测试请求可以为:测试与目的服务器之间的网络下载速度,网络质量测试区请求可以为:测试与目的服务器之间的网络时延以及丢包率。在本发明的其他实施例中,网络测试请求中可以同时包括网速测试请求和网络质量测试请求。
当所述网络测试请求为网络质量测试请求时,终端设备根据网络测试请求进行相应的网络访问操作具体为:终端设备发送测试数据包到目的服务器并接收目的服务器的反馈包,根据测试数据包的发送时刻与反馈包的接收时刻,计算终端设备与目的服务器之间的网络时延;以及根据测试数据包的发送数目与反馈包的数目计算终端设备与目的服务器之间的丢包率;
当所述网络测试请求为网速测试请求时,终端设备根据网络测试请求进行相应的网络访问操作具体为:终端设备从目的服务器下载指定大小的数据包,根据数据包的大小和下载完成所需的时间,计算与目的服务器之间的下载网速。
在本发明的一种实施例中,主代理服务器根据网络访问操作的结果确定所述网络测试结果。举例为,优良:丢包率=0并且延迟小于10ms。正常:丢包率小于2%或者时延<100ms。不正常:丢包率大于2%或者时延大于100ms。中断:丢包率为100%。
图3示出了根据本发明一个实施例的一种基于反向代理实现网络测试的网络拓扑图;参见图3所示,图3仅为本发明的技术方案实施的一种方案。
该方案主要为了解决在IDC机房在网络出口资源稀缺情况下的网络出口资源的扩充,以低成本快速铺设全国各地的网络测试环境,缓解公司需要在各地开设新机房所造成的高本成本的负担。
在未使用本发明的技术方案时,为了实现对某网页服务器的测试,为了达到全国各地的网络测试环境,需要在全国各地开设IDC机房。例如,图3中所示,使用西安服务器1访问某网页服务器时,该网页服务器判断该访问连接来自西安的IDC链路。
在使用本发明的技术方案之后,通过在主代理服务器上运行SSH服务端,在终端设备上运行SSH客户端和Squid服务端。并启动终端设备上的第一端口,在主代理服务器上启动第二端口,将终端设备上的第一端口映射到主代理服务器上的第二端口上。例如,北京某局域网中的终端设备1将第一端口80映射到主代理服务器上的第二端口200上,建立终端设备1与主代理服务器之间的网络隧道。上海某局域网中的终端设备2将第一端口80映射到主代理服务器上的第二端口300上,建立终端设备2与主代理服务器之间的网络隧道。其中,每个终端设备对应于主代理服务上的任意一个端口,并且每个终端设备所对应的端口号不相同。
当西安服务器1通过主代理服务器上的200端口访问网页服务器时,该网页服务器判断该访问连接来自北京IDC链路。同样的,当通过主代理服务器上的300端口访问网页服务器时,该网页服务器判断该访问连接来自上海IDC链路。并且在进行网络访问操作之后的结果也等同与该地区的网络访问操作结果。
其中,西安服务器1相当于本发明中的应用服务器。
因此实现了只需要一台主代理服务器和若干个终端设备,就能实现全国各位的网络测试环境。不仅减少了开设机房的时间成本、还减少了人力资源和服务器铺设成本。
在本发明的一种实施例中,终端设备可以为小型的ARM设备(插头电脑)、手机、平板电脑等智能终端,也可以是PC机等。在终端设备上部署linux***以及SSH客户端和反向代理服务端。
本发明还公开了一种基于反向代理实现网络测试的终端设备,其中,该终端设备位于局域网中,与位于广域网中的主代理服务器之间建立反向代理,进行网络测试。图4示出了根据本发明一个实施例的一种基于反向代理实现网络测试的终端设备的结构示意图。参见图4所示,该终端设备400包括:
反向代理模块401,适用于在终端设备400上启动第一端口;
网络隧道建立模块402,适用于在所述第一端口与主代理服务器上的第二端口之间建立网络隧道;
反向代理模块401,适用于接收所述主代理服务器通过所述第二端口经由所述网络隧道发送至所述第一端口的网络测试访问请求;根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果反馈到主代理服务器。
在本发明的一种实施例中,反向代理模块401,进一步适用于接收应用服务器通过所述网络隧道发送的网络测试请求;其中,所述应用服务器将网络测试请求发送到所述主代理服务器上的所述第二端口。
反向代理模块401,适用于根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;其中,所述应用服务器从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。
在本发明的一种实施例中,网络隧道建立模块402,适用于根据连接参数在所述第一端口与主代理服务器的第二端口之间建立网络隧道;其中,所述连接参数包括:终端设备的登录账户和密码,主代理服务器的广域网IP地址和第二端口的端口号,启动的所述终端设备的第一端口的端口号。
在本发明的一种实施例中,所述网络隧道建立模块402为SSH客户端;所述反向代理模块401为Squid服务端。
图5示出了根据本发明一个实施例的一种基于反向代理实现网络测试的终端设备的详细结构示意图。参见图5所示,该终端设备除了图4中所示的模块之外,该终端设备进一步包括:自动重连模块403。
自动重连模块403,适用于当所建立的网络隧道断开时,自动重连模块403启动网络隧道建立模块402,网络隧道建立模块402根据连接参数重新将第一端口映射到主代理服务器上的第二端口上,重新建立网络隧道。
在本发明的一种实施例中,自动重连模块为AUTOSSH客户端。
网络测试请求包括:网速测试请求或网络质量测试请求。
在本发明的一种实施例中,当所述网络测试请求为网络质量测试请求时,
反向代理模块401,适用于发送测试数据包到所述目的服务器并等待目的服务器的反馈,根据所述测试数据包的发送时刻与测试数据包反馈的接收时刻,计算与所述目的服务器之间的网络时延;以及根据测试数据包的发送数目与测试数据包的反馈的数目计算与所述目的服务器之间的网络质量。
在本发明的一种实施例中,当所述网络测试请求为网速测试请求时,
反向代理模块401,适用于从目的服务器下载指定大小的数据包,根据所述数据包的大小和下载完成所需的时间,计算与目的服务器之间的下载网速。
本发明还公开了一种基于反向代理实现网络测试的***,该***包括:具有广域网IP地址的主代理服务器和如图4或图5所示的终端设备。
图6示出了根据本发明一个实施例的一种基于反向代理实现网络测试的***的结构示意图。参见图6所示,该***包括:
主代理服务器601上部署有网络隧道建立服务端,
主代理服务器601,适用于通过网络隧道建立服务端建立与终端设备602之间的网络隧道;向终端设备602发送网络测试请求,以及接收终端设备602返回的根据网络测试请求进行相应的网络访问操作的网络访问操作的结果。
图7示出了根据本发明一个实施例的一种基于反向代理实现网络测试的***的详细结构示意图。参见图7所述,该***进一步包括:应用服务器603。
应用服务器603,适用于通过网络隧道将网络测试请求发送到主代理服务器601上的述第二端口;使得终端设备602根据网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过网络隧道进行反馈;
所述应用服务器603,适用于从主代理服务器601上的所述第二端口中获取所述网络访问操作的结果。
综上所述,本发明提供的技术方案,通过在各地的局域网中部署的终端设备中安装网络隧道建立客户端和反向代理服务端,在主代理服务器上部署网络隧道建立服务器。终端设备能够在开机的情况下通过连接参数将终端设备上的第一端口映射到主代理服务器上的第二端口上,建立主代理服务器与终端设备之间的网络隧道。主代理服务器或者相应的应用服务器能够根据该网络隧道发送网络测试请求到对应的终端设备,并且获取该终端设备中的反向代理服务器进行相应网络访问操作之后所反馈的操作结果。使得主代理服务器或者应用服务器能够根据所反馈的网络访问操作的结果确定网络测试的结构。此外,根据本发明提供的终端设备,只需要将该终端设备连接到测试区域的局域网中,就能与主代理服务器建立网络隧道,进而使得主代理服务器或者应用服务器能够通过该网络隧道使得该终端设备进行相应的网络访问操作之后反馈网络访问操作的结果确认网络测试结果。由此可见,本发明提供的技术方案解决了现有技术中在部署全国性的网络测试环境的情况下,需要部署IDC机房所需的高成本的问题。并且保证网络测试的结果准确的有益效果。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于反向代理实现网络测试的终端设备和***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本文公开了A1、一种基于反向代理实现网络测试的方法,其中,该方法适用于:通过在位于局域网中的终端设备和位于广域网中的主代理服务器之间建立反向代理进行网络测试,该方法包括:在所述终端设备上启动第一端口,在所述主代理服务器上启动第二端口;在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;通过所述主代理服务器的第二端口经由所述网络隧道发送网络测试请求至所述终端设备的第一端口;所述终端设备根据所述网络测试请求进行相应的网络访问操作,将所述网络访问操作的结果反馈至所述主代理服务器。A2、根据权利要求A1所述的方法,其中,该方法进一步包括:所述终端设备接收应用服务器通过所述网络隧道发送的网络测试请求;其中,所述应用服务器将网络测试请求发送到所述主代理服务器上的所述第二端口;所述终端设备根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;其中,所述应用服务器从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。A3、如权利要求A1所述的方法,其中,在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道包括:根据连接参数在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;其中,所述连接参数包括:终端设备的登录账户和密码,主代理服务器的广域网IP地址和第二端口的端口号,启动的所述终端设备的第一端口的端口号。A4、如权利要求A1至A3中任一项所述的方法,其中,该方法进一步包括:在终端设备上部署网络隧道建立客户端和反向代理服务端;由反向代理服务端在终端设备上启动第一端口;由网络隧道建立客户端在所述终端设备的第一端口与主代理服务器的第二端口之间建立网络隧道;由反向代理服务端接收来自网络隧道的网络测试请求,根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈。A5、如权利要求A4所述的方法,其中,该方法包括:所述网络隧道建立客户端为SSH客户端;所述反向代理服务端为Squid服务端。A6、如权利要求4所述的方法,其中,该方法进一步包括:在终端设备上部署自动重连客户端,当所建立的网络隧道断开时,所述自动重连客户端启动所述网络隧道建立客户端,所述网络隧道建立客户端根据所述连接参数重新将所述第一端口映射到主代理服务器上的所述第二端口上,重新建立网络隧道。A7、如权利要求A6所述的方法,其中,所述自动重连客户端为AUTOSSH客户端。A8、如权利要求1所述的方法,其中,所述网络测试请求包括:网速测试请求或网络质量测试请求;当所述网络测试请求为网络质量测试请求时,所述终端设备根据所述网络测试请求进行相应的网络访问操作包括:终端设备发送测试数据包到目的服务器并接收目的服务器的反馈包,根据所述测试数据包的发送时刻与反馈包的接收时刻,计算终端设备与所述目的服务器之间的网络时延;以及根据测试数据包的发送数目与反馈包的数目计算终端设备与所述目的服务器之间的丢包率;或者,当所述网络测试请求为网速测试请求时,所述终端设备根据所述网络测试请求进行相应的网络访问操作包括:终端设备从目的服务器下载指定大小的数据包,根据所述数据包的大小和下载完成所需的时间,计算与目的服务器之间的下载网速。A9、如权利要求A1所述的方法,其中,所述主代理服务器根据所述网络访问操作的结果确定所述网络测试结果。B10、一种基于反向代理实现网络测试的终端设备,其中,该终端设备位于局域网中,与位于广域网中的主代理服务器之间建立反向代理,进行网络测试,该终端设备包括:反向代理模块,适用于在终端设备上启动第一端口;网络隧道建立模块,适用于在所述第一端口与主代理服务器上的第二端口之间建立网络隧道;反向代理模块,适用于接收所述主代理服务器通过所述第二端口经由所述网络隧道发送至所述第一端口的网络测试访问请求;根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果反馈到主代理服务器。B11、如权利要求B10所述的终端设备,其中,反向代理模块,进一步适用于接收应用服务器通过所述网络隧道发送的网络测试请求;其中,所述应用服务器将网络测试请求发送到所述主代理服务器上的所述第二端口;反向代理模块,适用于根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;其中,所述应用服务器从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。B12、如权利要求B10所述的终端设备,其中,网络隧道建立模块,适用于根据连接参数在所述第一端口与主代理服务器的第二端口之间建立网络隧道;其中,所述连接参数包括:终端设备的登录账户和密码,主代理服务器的广域网IP地址和第二端口的端口号,启动的所述终端设备的第一端口的端口号。B13、如权利要求B11所述的终端设备,其中,所述网络隧道建立模块为SSH客户端;所述反向代理模块为Squid服务端。B14、如权利要求B10所述的终端设备,其中,该终端设备进一步包括:自动重连模块;自动重连模块,适用于当所建立的网络隧道断开时,所述自动重连模块启动所述网络隧道建立模块,所述网络隧道建立模块根据所述连接参数重新将所述第一端口映射到主代理服务器上的所述第二端口上,重新建立网络隧道。B15、如权利要求B13所述的终端设备,其中,自动重连模块为AUTOSSH客户端。B16、如权利要求B10所述的终端设备,其中,所述网络测试请求包括:网速测试请求或网络质量测试请求;当所述网络测试请求为网络质量测试请求时,反向代理模块,适用于发送测试数据包到所述目的服务器并等待目的服务器的反馈,根据所述测试数据包的发送时刻与测试数据包反馈的接收时刻,计算与所述目的服务器之间的网络时延;以及根据测试数据包的发送数目与测试数据包的反馈的数目计算与所述目的服务器之间的网络质量;或者,当所述网络测试请求为网速测试请求时,反向代理模块,适用于从目的服务器下载指定大小的数据包,根据所述数据包的大小和下载完成所需的时间,计算与目的服务器之间的下载网速。C17、一种基于反向代理实现网络测试的***,其中,该***包括:具有广域网IP地址的主代理服务器和如权利要求B10~B14中任意一项所述的终端设备。C18、根据权利要求C17所述的***,其中,所述主代理服务器上部署有网络隧道建立服务端,所述主代理服务器,适用于通过所述网络隧道建立服务端建立与终端设备之间的网络隧道;向终端设备发送网络测试请求,以及接收终端设备返回的根据所述网络测试请求进行相应的网络访问操作的网络访问操作的结果。C19、如权利要求C17所述的***,其中,该***进一步包括:应用服务器;所述应用服务器,适用于通过所述网络隧道将网络测试请求发送到主代理服务器上的所述第二端口;使得所述终端设备根据所述网络测试请求进行相应的网络访问操作,将网络访问操作的结果通过所述网络隧道进行反馈;所述应用服务器,适用于从所述主代理服务器上的所述第二端口中获取所述网络访问操作的结果。