CN115694849A - 一种p2p内网穿透vpn的方法 - Google Patents
一种p2p内网穿透vpn的方法 Download PDFInfo
- Publication number
- CN115694849A CN115694849A CN202110833892.3A CN202110833892A CN115694849A CN 115694849 A CN115694849 A CN 115694849A CN 202110833892 A CN202110833892 A CN 202110833892A CN 115694849 A CN115694849 A CN 115694849A
- Authority
- CN
- China
- Prior art keywords
- client
- nat
- request
- port
- target client
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种P2P内网穿透VPN的方法,请求客户端向P2P协商服务器发送与目标客户端建立通讯关系的访问请求,访问请求中包括请求客户端的标识数据,其中,标识数据即为客户端身份的唯一标识信息,P2P协商服务器根据请求客户端的标识数据和目标客户端的标识数据协商建立请求客户端与目标客户端的通信关系,生成对应的IP端口组合反馈给请求客户端和目标客户端,请求客户端与目标客户端分别基于各自接收的IP端口组合启动各自的VPN程序建立通信通道进行数据交换。本发明解决了现有技术中两地通信通过VPN技术联网时,必须至少有一方拥有公网IP的限制。
Description
技术领域
本发明涉及一种P2P内网穿透VPN的方法,属于网络通信技术领域。
背景技术
VPN即虚拟专用网络(Virture Private Network),其能够利用Internet或者其它公共互联网基础设施,提供与专有网络一样的功能和安全保障,即在公用网络上进行加密的VPN通讯,在企业网络中应用广泛。
现有的虚拟网络在通过Internet隧道技术将两个不同位置的网络连接时,通常情况下,VPN网关采用双网卡结构,需要一个网卡持有公网IP接入Internet,这就是说,VPN远程互联时,必须有一方需要持有公网IP,而由于IPV4地址的紧缺,现实中往往比较难以实现。
发明内容
为解决上述问题,本发明提出一种P2P内网穿透VPN的方法,具体技术方案如下,
一种P2P内网穿透VPN的方法,包括如下步骤:
步骤一:在公网中建立一个服务节点,作为协商服务器,协商服务器具有公网IP;
步骤二:将多个没有公网IP的客户端使用本地IP与在公网上协商服务器联网;
步骤三:请求客户端向协商服务器发送与目标客户端建立通信的访问请求;
步骤四:协商服务器根据访问请求的数据信息协商建立请求客户端和目标客户端的通信关系,生成对应的IP端口组合分别反馈给请求客户端和目标客户端;
步骤五:请求客户端和目标客户端分别基于各自的IP端口组合启动各自VPN客户端程序建立通信通道进行数据交互。
优选的,所述访问请求的数据信息包括请求客户端的标识数据和目标客户端的标识数据。
优选的,所述请求客户端的IP端口组合包括请求客户端的IP地址信息、请求客户端的端口信息的UDP协议组合;所述目标客户端的IP端口组合包括目标客户端的IP地址信息、目标客户端的端口信息的UDP协议组合。
优选的,所述VPN客户端中设置心跳机制,通过周期性的心跳检查通信信道的通畅性。
优选的,所述请求客户端和目标客户端进行数据交互的NAT协议分为全锥形NAT、受限锥形NAT、端口受限锥形NAT、对称型NAT;
所述全锥形NAT,对访问无限制,请求客户端和目标客户端可以直接访问对方的端口;
所述受限锥形NAT或者端口受限锥形NAT,受限锥形NAT或者端口受限锥形NAT对访问者的端口或者IP是有限制的,如果请求客户端未访问过目标客户端,则请求客户端的受限锥形NAT或者端口受限锥形NAT会拒绝目标客户端的访问,需要请求客户端请求目标客户端的受限锥形NAT或者端口受限锥形NAT的同时,目标客户端请求请求客户端的受限锥形NAT或者端口受限锥形NAT,让目标客户端和请求客户端的NAT网关允许彼此通过请求;
所述对称型NAT,对称型NAT访问不同主机的不同端口,映射的端口号会发生变化,当双方都是对称型NAT则无法实现通信。
本发明将两个异地环境的客户端组成一个虚拟的局域网,这个局域网中的机器不需要公网IP,不需要公网服务器转发就可以实现TCP/IP通讯,两个客户端之间直接点对点通讯,解决了现有技术中两地通信通过VPN技术联网时,必须至少有一方拥有公网IP的限制。
附图说明
图1是本发明一种P2P内网穿透VPN的方法的工作流程图。
图2是本发明一种P2P内网穿透VPN的方法的工作原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
NAT:Natwork Adress Translation网络地址转换。
P2P:点对点通信。
Full Cone(全锥形):将从同一内部IP地址和端口来的所有请求,都映射到相同的外部IP地址和端口,只要建立映射,可以直接从外部进行访问。
Resticted Cone NAT(受限锥形):将从同一内部IP地址和端口来的所有请求,都映射到相同的外部IP地址和端口,当且仅当内网主机之前已经向公网主机发送过分组,此公网主机才可以向内网主机访问。
CSymmetric NAT(对称型NAT):仅当内网主机向公网主机发送过分组,公网才能和该主机通信,且增加了端口限制。
Port Resticted Cone NAT(端口受限锥形):将从同一内部IP地址和端口到相同目的IP和端口的所有请求,都映射到相同的外部IP地址和端口,相同内网地址和端口向另一个目的地址发送分组,会使用不通的映射。
如图1和2所示,一种P2P内网穿透VPN的方法,包括如下步骤:
步骤一:在公网中建立一个服务节点,作为协商服务器,协商服务器具有公网IP;
步骤二:将多个没有公网IP的客户端使用本地IP与在公网上协商服务器联网;
步骤三:请求客户端向协商服务器发送与目标客户端建立通信的访问请求,所述访问请求的数据信息包括请求客户端的标识数据和目标客户端的标识数据;
步骤四:协商服务器根据访问请求的数据信息协商建立请求客户端和目标客户端的通信关系,生成对应的IP端口组合分别反馈给请求客户端和目标客户端;
步骤五:请求客户端和目标客户端分别基于各自的IP端口组合启动各自VPN客户端程序建立通信通道进行数据交互。
所述请求客户端的IP端口组合包括请求客户端的IP地址信息、请求客户端的端口信息的UDP协议组合;所述目标客户端的IP端口组合包括目标客户端的IP地址信息、目标客户端的端口信息的UDP协议组合。UDP可以采用同一个端口进行发送数据和接收数据,并且同一个端口可以发送到不同的主机上,所以采用UDP可以很容易在NAT上建立一个双向通信的端口。监听本地端口,通过本地端口向服务器指定端口发送UDP数据包,当发送成功后,就建立起了一个网络链路。
所述VPN客户端中设置心跳机制,通过周期性的心跳检查通信信道的通畅性,在长时间维持信道,防止信道老化。
NAT是地址转换协议,当你在一个局域网内发起网络请求时,NAT网关会在网关上开一个端口号映射到你本机的对应端口号,然后你的这个端口号的通信会走这个端口号进行收发数据。所述请求客户端和目标客户端进行数据交互的NAT协议分为全锥形NAT、受限锥形NAT、端口受限锥形NAT、对称型NAT;
所述全锥形NAT,对访问无限制,请求客户端和目标客户端可以直接访问对方的端口;
所述受限锥形NAT或者端口受限锥形NAT,受限锥形NAT或者端口受限锥形NAT对访问者的端口或者IP是有限制的,如果请求客户端未访问过目标客户端,则请求客户端的受限锥形NAT或者端口受限锥形NAT会拒绝目标客户端的访问,需要请求客户端请求目标客户端的受限锥形NAT或者端口受限锥形NAT的同时,目标客户端请求请求客户端的受限锥形NAT或者端口受限锥形NAT,让目标客户端和请求客户端的NAT网关允许彼此通过请求;
所述对称型NAT,对称型NAT访问不同主机的不同端口,映射的端口号会发生变化,当双方都是对称型NAT则无法实现通信。
请求客户端向P2P协商服务器发送与目标客户端建立通讯关系的访问请求,访问请求中包括请求客户端的标识数据,其中,标识数据即为客户端身份的唯一标识信息,P2P协商服务器根据请求客户端的标识数据和目标客户端的标识数据协商建立请求客户端与目标客户端的通信关系,生成对应的IP端口组合反馈给请求客户端和目标客户端,请求客户端与目标客户端分别基于各自接收的IP端口组合启动各自的VPN程序建立通信通道进行数据交换。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种P2P内网穿透VPN的方法,其特征在于:包括如下步骤:
步骤一:在公网中建立一个服务节点,作为协商服务器,协商服务器具有公网IP;
步骤二:将多个没有公网IP的客户端使用本地IP与在公网上协商服务器联网;
步骤三:请求客户端向协商服务器发送与目标客户端建立通信的访问请求;
步骤四:协商服务器根据访问请求的数据信息协商建立请求客户端和目标客户端的通信关系,生成对应的IP端口组合分别反馈给请求客户端和目标客户端;
步骤五:请求客户端和目标客户端分别基于各自的IP端口组合启动各自VPN客户端程序建立通信通道进行数据交互。
2.根据权利要求1所述的一种P2P内网穿透VPN的方法,其特征在于:所述访问请求的数据信息包括请求客户端的标识数据和目标客户端的标识数据。
3.根据权利要求1所述的一种P2P内网穿透VPN的方法,其特征在于:所述请求客户端的IP端口组合包括请求客户端的IP地址信息、请求客户端的端口信息的UDP协议组合;所述目标客户端的IP端口组合包括目标客户端的IP地址信息、目标客户端的端口信息的UDP协议组合。
4.根据权利要求1所述的一种P2P内网穿透VPN的方法,其特征在于:所述VPN客户端中设置心跳机制,通过周期性的心跳检查通信信道的通畅性。
5.根据权利要求1所述的一种P2P内网穿透VPN的方法,其特征在于:所述请求客户端和目标客户端进行数据交互的NAT协议分为全锥形NAT、受限锥形NAT、端口受限锥形NAT、对称型NAT;
所述全锥形NAT,对访问无限制,请求客户端和目标客户端可以直接访问对方的端口;
所述受限锥形NAT或者端口受限锥形NAT,受限锥形NAT或者端口受限锥形NAT对访问者的端口或者IP是有限制的,如果请求客户端未访问过目标客户端,则请求客户端的受限锥形NAT或者端口受限锥形NAT会拒绝目标客户端的访问,需要请求客户端请求目标客户端的受限锥形NAT或者端口受限锥形NAT的同时,目标客户端请求请求客户端的受限锥形NAT或者端口受限锥形NAT,让目标客户端和请求客户端的NAT网关允许彼此通过请求;
所述对称型NAT,对称型NAT访问不同主机的不同端口,映射的端口号会发生变化,当双方都是对称型NAT则无法实现通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833892.3A CN115694849A (zh) | 2021-07-23 | 2021-07-23 | 一种p2p内网穿透vpn的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833892.3A CN115694849A (zh) | 2021-07-23 | 2021-07-23 | 一种p2p内网穿透vpn的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115694849A true CN115694849A (zh) | 2023-02-03 |
Family
ID=85045132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110833892.3A Pending CN115694849A (zh) | 2021-07-23 | 2021-07-23 | 一种p2p内网穿透vpn的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115694849A (zh) |
-
2021
- 2021-07-23 CN CN202110833892.3A patent/CN115694849A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI408936B (zh) | 網路穿透方法及網路通訊系統 | |
US7716369B2 (en) | Data transmission system with a mechanism enabling any application to run transparently over a network address translation device | |
EP2253123B1 (en) | Method and apparatus for communication of data packets between local networks | |
US8526467B2 (en) | Facilitating transition of network operations from IP version 4 to IP version 6 | |
US8805977B2 (en) | Method and system for address conflict resolution | |
RU2543304C2 (ru) | Способ и устройство, для ретрансляции пакетов | |
TWI441493B (zh) | 網路位址轉換的系統與方法 | |
US8422486B2 (en) | Method for controlling direct penetrating communication between two devices under different NATs, and device for the same | |
US20040148439A1 (en) | Apparatus and method for peer to peer network connectivty | |
US20040044778A1 (en) | Accessing an entity inside a private network | |
CN100464540C (zh) | 一种跨网关通信的方法 | |
KR20030072927A (ko) | 서로 다른 사설망에 존재하는 네트워크장치들 간의직접접속을 제공하는 망접속장치 및 방법 | |
TW200409500A (en) | Dynamic network address translation system and method of transparent private network device | |
BRPI0616627A2 (pt) | equipamento, sistema e método para comunicação entre cliente e lado do servidor | |
EP2466806A1 (en) | Method and system for implementing network intercommunication | |
US20060268863A1 (en) | Transparent address translation methods | |
BRPI0616599A2 (pt) | método e sistema para estabelecer uma conexão ponto a ponto | |
CA2884382C (en) | Method and system for tcp turn operation behind a restrictive firewall | |
CN110691113B (zh) | 一种双方为非对称型的nat的穿透方法 | |
CN115022281B (zh) | 一种nat穿透的方法、客户端及系统 | |
JP2019050628A5 (zh) | ||
CN115694849A (zh) | 一种p2p内网穿透vpn的方法 | |
CN117439815B (zh) | 一种基于反向透明桥接的内网穿透系统及方法 | |
JP5054666B2 (ja) | Vpn接続装置、パケット制御方法、及びプログラム | |
US20230388397A1 (en) | Resolving Overlapping IP Addresses in Multiple Locations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |