发明内容
针对现有技术的不足,本发明提出一种扩展云手机IP地址的方法、系统、装置及存储介质,解决公网IP地址数量有限的问题。
本发明的技术方案是这样实现的:第一方面,一种扩展云手机IP地址的方法,包括如下步骤:
步骤1,创建虚拟网卡设备;
步骤2,修改与虚拟网卡设备对应的策略路由表,改变报文的路径;
步骤3,虚拟网卡设备收到报文之后,将报文转发到客户端;
步骤4,客户端收到报文之后,将报文转发到互联网。
可选的,步骤2包括
设置虚拟网卡设备的IP和默认网关;
将虚拟网卡设备的IP添加到路由表中,使所述指定应用的报文的路径通过所述默认网关经过创建的所述虚拟网卡设备;
刷新,使新添加虚拟网卡设备的IP的路由表生效。
可选的,步骤3包括以下子步骤:
虚拟网卡设备将收到的报文封装成IP数据包;
虚拟网卡设备通过ARP请求获取第一路由器的MAC地址,并在链路层将第一路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是虚拟网卡设备的MAC地址;
虚拟网卡设备将IP数据包发送到第一路由器第一接口,第一路由器第一接口接收到IP数据包,把链路层的封装去掉,并确定路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,第一路由器通过ARP广播,获取客户端的MAC地址,将IP数据包在第一路由器第二接口重新封装,源MAC地址是第一路由器第二接口的MAC地址,目标MAC地址是客户端的MAC地址;
封装完成后直接从第一路由器第二接口发送给客户端。
可选的,步骤4还包括以下子步骤:
客户端将收到的报文封装成IP数据包;
客户端通过ARP请求获取第二路由器的MAC地址,并在链路层将第二路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是客户端的MAC地址;
客户端将IP数据包发送到第二路由器第一接口,第二路由器第一接口接收到IP数据包,把链路层的封装去掉,并确定路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,第二路由器通过ARP广播,获取互联网的MAC地址,将IP数据包在第二路由器第二接口重新封装,源MAC地址是第二路由器第二接口的MAC地址,目标MAC地址是互联网的MAC地址;
封装完成后直接第二路由器第二接口发送给互联网。
第二方面,本发明实施例提供一种扩展云手机IP地址的系统,其特征在于,包括:
创建模块,用于创建虚拟网卡设备,
修改模块,用于修改与虚拟网卡设备对应的策略路由表,改变报文的路径;
第一转发模块,用于虚拟网卡设备收到报文之后,将报文转发到客户端;
第二转发模块,用于客户端收到报文之后,将报文转发到互联网。
可选的,修改模块包括:
设置单元,用于设置虚拟网卡设备的IP和默认网关;
添加单元,用于将虚拟网卡设备的IP添加到路由表中,使所述指定应用的报文的路径通过所述默认网关经过创建的所述虚拟网卡设备;
刷新单元,用于刷新,使新添加虚拟网卡设备的IP的路由表生效。
可选的,第一转发模块包括:
第一封装单元,用于虚拟网卡设备将收到的报文封装成IP数据包;
第一获取单元,用于虚拟网卡设备通过ARP请求获取第一路由器的MAC地址,并在链路层将第一路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是虚拟网卡设备的MAC地址;
第一接收单元,用于虚拟网卡设备将IP数据包发送到第一路由器第一接口,第一路由器第一接口接收到IP数据包,把链路层的封装去掉,并确定路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,第一路由器通过ARP广播,获取客户端的MAC地址,将IP数据包在第一路由器第二接口重新封装,源MAC地址是第一路由器第二接口的MAC地址,目标MAC地址是客户端的MAC地址;
第一发送单元,用于封装完成后直接从第一路由器第二接口发送给客户端。
可选的,第二转发模块包括:
第二封装单元,用于客户端将收到的报文封装成IP数据包;
第二获取单元,用于客户端通过ARP请求获取第二路由器的MAC地址,并在链路层将第二路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是客户端的MAC地址;
第二接收单元,用于客户端将IP数据包发送到第二路由器第一接口,第二路由器第一接口接收到IP数据包,把链路层的封装去掉,并确定路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,第二路由器通过ARP广播,获取互联网的MAC地址,将IP数据包在第二路由器第二接口重新封装,源MAC地址是第二路由器第二接口的MAC地址,目标MAC地址是互联网的MAC地址;
第二发送单元,用于封装完成后直接第二路由器第二接口发送给互联网。
第三方面,本发明实施例提供一种扩展云手机IP地址的装置,包括:
存储器,用于存放程序;
处理器,用于执行程序,程序使得处理器执行如权利要求1~4任一项的扩展云手机IP地址的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,包括计算机程序,当其在计算机上运行时,使得如权利要求1~4任一项的扩展云手机IP地址的方法被执行。
与现有技术相比,本发明具有以下优点:相较于传统的增加机房或使用vpn服务,本发明通过增加虚拟软件设备来解决了云手机公网IP地址有限的问题,在扩展云手机公网IP地址的同时,不会对用户使用造成任何负担,也可以进一步吸引更多的客户。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明实施方式的一种扩展云手机IP地址的方法的流程示意图。
本发明实施方式公开了一种扩展云手机IP地址的方法,在该实施方式中,以云手机作为步骤的执行对象为例。该方法包括
步骤1,创建虚拟网卡设备;
步骤2,修改与虚拟网卡设备对应的策略路由表,改变报文的路径;
步骤3,虚拟网卡设备收到报文之后,将报文转发到客户端;
步骤4,客户端收到报文之后,将报文转发到互联网。
在一具体的实施例中,在云手机中创建一个虚拟网卡设备,然后将虚拟网卡设备对应的策略路由表进行修改,确保指定应用的报文经过新创建的虚拟网卡设备;虚拟网卡设备收到报文之后,将报文转发到客户端,即在云手机到客户端之间创建了一个的虚拟隧道;客户端收到虚拟隧道的报文之后,将报文转发到互联网。从客户端转发出去的报文将使用客户端设备的IP地址作为公网IP地址,而每一个客户端设备的IP地址都是彼此独立的。所以这样就大大扩展了云手机的公网IP地址,每一个客户端设备的IP地址都可能成为云手机的公网IP地址,其中设计多少个客户端,即可扩展出多少个云手机的公网IP地址。
如图2所示,本发明实施公开了一种扩展云手机IP地址的系统,包括创建模块、修改模块、第一转发模块和第二转发模块,具体的,各个模块的介绍如下:
创建模块,用于创建虚拟网卡设备,
修改模块,用于修改与虚拟网卡设备对应的策略路由表,改变报文的路径;
第一转发模块,用于虚拟网卡设备收到报文之后,将报文转发到客户端;
第二转发模块,用于客户端收到报文之后,将报文转发到互联网。
在一具体的实施例中,一种扩展云手机IP地址的方法以一种扩展云手机IP地址的系统作为执行对象,或者以系统内的各个模块作为步骤的执行对象;具体地,步骤1以创建模块作为执行对象;步骤2以修改模块作为执行对象;步骤3以第一转发模块作为执行对象;步骤4以第二转发模块作为执行对象。
具体的,步骤2包括:
S21,设置虚拟网卡设备的IP和默认网关;
S22,将虚拟网卡设备的IP添加到路由表中,使所述指定应用的报文的路径通过所述默认网关经过创建的所述虚拟网卡设备;
S23,刷新,使新添加虚拟网卡设备的IP的路由表生效。
其中,步骤2通过如下代码来实现报文路径的改变,使其经过虚拟网卡设备。
“ip rule add iif lo oif tun0 pref 14000 table 1012”
对应的,一种扩展云手机IP地址的系统中的修改模块包括设计单元、添加单元和刷新单元,如图3所示,为一种扩展云手机IP地址的系统的修改模块组成示意图,其中
设置单元,用于设置虚拟网卡设备的IP和默认网关;
添加单元,用于将虚拟网卡设备的IP添加到路由表中,使所述指定应用的报文的路径通过所述默认网关经过创建的所述虚拟网卡设备;
刷新单元,用于刷新,使新添加虚拟网卡设备的IP的路由表生效。
具体的,步骤3包括以下子步骤:
S31,虚拟网卡设备将收到的报文封装成IP数据包;
S32,虚拟网卡设备通过ARP请求获取第一路由器的MAC地址,并在链路层将第一路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是虚拟网卡设备的MAC地址;
S33,虚拟网卡设备将IP数据包发送到第一路由器第一接口,第一路由器第一接口接收到IP数据包,把链路层的封装去掉,并确定路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,第一路由器通过ARP广播,获取客户端的MAC地址,将IP数据包在第一路由器第二接口重新封装,源MAC地址是第一路由器第二接口的MAC地址,目标MAC地址是客户端的MAC地址;
S34,封装完成后直接从第一路由器第二接口发送给客户端。
对应的,一种扩展云手机IP地址的系统中的第一转发模块包括第一封装单元,第一获取单元,第一接收单元,和第一发送单元,如图4所示,为一种扩展云手机IP地址的系统的第一转发模块组成示意图,其中
第一封装单元,用于虚拟网卡设备将收到的报文封装成IP数据包;
第一获取单元,用于虚拟网卡设备通过ARP请求获取第一路由器的MAC地址,并在链路层将第一路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是虚拟网卡设备的MAC地址;
第一接收单元,用于路由器第一接口接收到IP数据包,把链路层的封装去掉,并确认路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,路由器通过ARP广播,获取客户端的MAC地址,将数据包在路由器第二接口重新封装,源MAC地址是路由器第二接口的MAC地址,目标MAC地址是客户端的MAC地址;
第一发送单元,用于封装完成后直接从路由器第二接口发送给客户端。
具体的,步骤4还包括以下子步骤:
S41,客户端将收到的报文封装成IP数据包;
S42,客户端通过ARP请求获取第二路由器的MAC地址,并在链路层将第二路由器第一接口的MAC地址封装成目标MAC地址,源MAC地址是客户端的MAC地址;
S43,客户端将IP数据包发送到第二路由器第一接口,第二路由器第一接口接收到IP数据包,把链路层的封装去掉,并确定路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,第二路由器通过ARP广播,获取互联网的MAC地址,将IP数据包在第二路由器第二接口重新封装,源MAC地址是第二路由器第二接口的MAC地址,目标MAC地址是互联网的MAC地址;
S44,封装完成后直接第二路由器第二接口发送给互联网。
对应的,一种扩展云手机IP地址的系统中的第二转发模块包括第二封装单元,第二获取单元,第二接收单元,和第二发送单元,如图5所示,为一种扩展云手机IP地址的系统的第二转发模块组成示意图,其中
第二封装单元,用于客户端将收到的报文封装成IP数据包;
第二获取单元,用于客户端通过ARP请求获取第二路由器的MAC地址,并在链路层将路由器第二接口的MAC地址封装成目标MAC地址,源MAC地址是客户端的MAC地址;
第二接收单元,用于路由器第二接口接收到IP数据包,把链路层的封装去掉,并确认路由表中是否有目标IP地址网段相匹配的项,并与路由表进行匹配,路由器通过ARP广播,获取互联网的MAC地址,将数据包在路由器第二接口重新封装,源MAC地址是路由器第二接口的MAC地址,目标MAC地址是互联网的MAC地址;
第二发送单元,用于封装完成后直接从路由器第二接口发送给互联网。
综上所述,本发明通过在云手机内创建虚拟网卡设备,转换报文的路径来解决云手机地址有限的问题,相较于传统的增加机房或使用vpn服务,本发明通过增加虚拟软件设备来解决了云手机公网IP地址有限的问题,在扩展云手机公网IP地址的同时,不会对用户使用造成任何负担,也可以进一步吸引更多的客户。
根据本发明其中一实施例,还提供了一种存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPRO或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
同理,根据本发明其中一实施例,还提供了一种处理器,其上存储有可被该处理器运行的计算机程序,在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的实施方式的不同结构。为了简化本发明的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明的实施方式可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明的实施方式提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
在本发明的实施方式的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明的实施方式和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的实施方式的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的实施方式的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的实施方式的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明的实施方式中的具体含义。
在本发明的实施方式中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的实施方式的不同结构。为了简化本发明的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明的实施方式可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明的实施方式提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。