VPN使用中经常会看到商家有提供 PPTP VPN、L2TP  VPN、OpenVPN、SSH代理等多种协议选择,但是许多朋友却不知道它们之间有什么区别,也不知道该如何选择。

今天米扑博客整理了一些VPN知识为大家解开这些困惑,让用户知道在不同的平台和环境下使用协议,其中每一种协议均有独特的功能和优势,在我们选择使用协议时,需要考虑自己的设备是支持什么协议,在安全性和速度之间权衡,以及考虑有没有协议被你的网络阻塞。

 

VPN 简介

VPN(Virtual Private Network,虚拟专用网)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展

VPN发展至今已经不在是一个单纯的经过加密的访问隧道了,它已经融合了访问控制、传输管理、加密、路由选择、可用性管理等多种功能,并在全球的信息安全体系中发挥着重要的作用。

在网络上,有关各种VPN协议优缺点的比较是仁者见仁,智者见智,很多技术人员由于出于使用目的考虑,包括访问控制、安全和用户简单易用,灵活扩展等各方面,权衡利弊,难以取舍;尤其在实际的企业网络环境中,网络安全显得尤为重要,因此现在越来越多的网关支持 VPN协议。

 

VPN 使用场景

Apple MacBook Pro VPN协议类型:L2TP over IPSec、Cisco IPSec、IKEv2

Apple iPhone 6s plus VPN协议类型:L2TP、IPSec、IKEv2(PPTP在iOS10升级后踢出了)

vpn-xie-yi-pptp-l2tp-openvpn-ji-ssh-de-qu-bie-yu-xiang-jie-01

 

一、PPTP、L2TP、OpenVPN、SSH 简介

1:PPTP VPN协议

PPTP(Point to Point Tunneling Protocol,点对点隧道协议)默认端口号:1723

PPTP协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可以通过密码身份验证协议(PAP)、可扩展身份验证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。

PPTP点对点隧道协议是一种支持多协议虚拟专用网络的网络技术,它工作在第二层(数据链路层)。通过该协议,远程用户能够通过 Microsoft Windows 、NT工作站、Windows XP 、Windows 2000 和Windows2003、Windows7操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地ISP,通过Internet安全链接到公司网络。

PPTP协议它是点对点隧道协议,其将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;

数据包部分先封装在PPP协议中,然封后装到GRE V2协议中。

简单说,PPTP使用TCP协议,适合在没有防火墙限制的网络中使用。

 

2:L2TP VPN协议

L2TP(Layer 2 Tunneling Protocol,第二层隧道协议)是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处:

1)PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;

2)PPTP使用单一隧道,L2TP使用多隧道;

3)L2TP提供包头压缩、隧道验证,而PPTP不支持。

L2TP是一个数据链路层协议基于UDP。其报文分为数据消息和控制消息两类。数据消息用投递 PPP帧,该帧作为L2TP报文的数据区。L2TP不保证数据消息的可靠投递,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。控制消息用以建立、维护和终止控制连接及会话,L2TP确保其可靠投递,并支持对控制消息的流量控制和拥塞控制。

L2TP是国际标准隧道协议,它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。L2TP没有任何加密措施,更多是和IPSec协议结合使用(L2TP over IPSec,提供隧道验证。

L2TP使用UDP协议,一般可以穿透防火墙,适合在有防火墙限制、局域网用户,如公司、网吧、学校等场合使用。

PPTP和L2TP二个连接类型在性能上差别不大,如果使用PPTP不正常,那就更换为L2TP。

 

3:OpenVPN隧道协议

OpenVPN的技术核心是虚拟网卡,其次是SSL协议实现。

虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是OpenVPN能够跨平台一个很重要的理由。

OpenVPN使用OpenSSL库加密数据与控制信息:它使用了OpenSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。

OpenVPN它是一个基于SSL加密的纯应用层的VPN协议,也是SSL VPN的一种,有支持UDP与TCP两种方式:UDP和TCP是2种通讯协议,这里通常UDP没有三次握手,允许数据丢包,所以效率会比较高,速度也相对较快,一般用于视频会议等。所以尽量使用UDP连接方式,实在UDP没法使用的时候,再使用TCP连接方式。

由于OpenVPN运行在纯应用层,避免了PPTP和L2TP在某些NAT设备后面不被支持的情况,并且可以绕过一些网络的封锁,通俗点讲,OpenVPN基本能用于任何可以上网的设备

OpenVPN客户端软件能很方便地配合路由表,实现不同线路(如国内和国外)的路由选择,实现一部分IP走VPN,另一部分IP走原网络。

 

4:SSH隧道协议

SSH原本是用于UNIX类系统的远程登录和管理,由于SSH可以通过客户端软件在本地做一个SOCKS代理进行加密转发,因此它也被用于网络代理。一些喜欢用SSH的代理的人,会配合浏览器插件(如Firefox的AutoProxy,Chrome的Switchy)和自动列表,可实现对不同网址有选择性地代理。

 

5:IKEv2

IKE(Internet Key Exchange,Internet密钥交换协议)它和VPN还不是一个领域的东西,它可以用来管理一个sa,协商好密钥及算法和参数,真正的业务保护靠IPSec完成。

IKEv2(Internet Key Exchange version 2,Internet密钥交换协议版本2)它是用来完成认证,协商加密、哈西算法、以及对应密钥,定义什么流量需要加密,完成IKE SA,IP sec SA 的建立。至于安全性是由认证方式(预共享密码,数字证书),加密算法(AES,3DES),哈西算法(SHA,MD5),Anti-replay window 来共同完成的,只要有一个环节有漏洞,就是不安全的。

所以,IKEv2仅仅是一种密钥交换控制协议,不能称其为VPN协议

IKEV2 是最新的VPN协议,比PPTP和L2TP两种协议都好,轻量级,速度快。

 

6:IPSec

IPSec(Internet Protocol Security,Internet 协议安全性)是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯。Microsoft® Windows® 2000、Windows XP 和 Windows Server 2003 家族实施 IPSec 是基于“Internet 工程任务组 (IETF)”IPSec 工作组开发的标准。

IPSec是安全联网的长期方向,它通过端对端的安全性来提供主动的保护以防止专用网络与 Internet 的攻击。在通信中,只有发送方和接收方才是唯一必须了解 IPSec 保护的计算机。在 Windows 2000、Windows XP 和 Windows Server 2003 家族中,IPSec 提供了一种能力,以保护工作组、局域网计算机、域客户端和服务器、分支机构(物理上为远程机构)、Extranet 以及漫游客户端之间的通信。

IPSec是IETF(Internet Engineering Task Force,Internet工程任务组)的IPSec小组建立的一组IP安全协议集。IPSec定义了在网际层使用的安全服务,其功能包括数据加密、对网络单元的访问控制、数据源地址验证、数据完整性检查和防止重放攻击。

IPSec的安全服务要求支持共享密钥完成认证和/或保密,并且手工输入密钥的方式是必须要支持的,其目的是要保证IPSec协议的互操作性。当然,手工输入密钥方式的扩展能力很差,因此在IPSec协议中引入了一个密钥管理协议,称之为:Internet密钥交换协议——IKE,该协议可以动态认证IPSec对等体,协商安全服务,并自动生成共享密钥。

 

二、PPTP、L2TP、OpenVPN 优缺点比较

易用性:PPTP  >  L2TP  >  OpenVPN

安全性:OpenVPN  >  L2TP  >  PPTP

速度:PPTP  >  OpenVPN UDP  >  L2TP  >  OpenVPN TCP

稳定性:OpenVPN  >  L2TP  >  PPTP

网络适用性:OpenVPN  >  PPTP  >  L2TP

 

三、该选择哪种VPN协议连接

电脑上优先使用PPTP,无法使用可以尝试L2TP,手持设备推荐使用L2TP

如果你对安全性要求高的话就优先使用OpenVPN;

如果你对VPN隧道协议不了解,那么,请按照以下顺序进行尝试连接

1:PPTP——最常用,设置最简单,大多数设备都支持(苹果 iOS10 以上不再支持,因其安全性不够高)

2:L2TP——支持PPTP的设备基本都支持此种方式,设置略复杂,需要选择L2TP/IPSec PSK方式,且设置预共享密钥PSK

3:OpenVPN——最稳定,适用于各种网络环境,适合校园网、公司局域网等受限网络环境,需要安装第三方软件和配置文件,较复杂

4:IKEv2 -- 更加优秀的选择 IKEv2,更加轻便、快速,也是Windows Phone中唯一支持的VPN协议(好像最近支持了L2TP)

 

特别提醒:

XP系统启用L2TP需要重启电脑,Vista、Win 7则无需重启。

PPTP与L2TP2个连接类型在性能上差别不大,如果使用PPTP不正常,那就更换为L2TP

 

个人使用经验

在使用VPN的时候应该首先尝试PPTP模式,若连接不了再用L2TP模式,一般来说都是可以连接成功的。

另外,某些移动地区无法使用PPTP,必须得用L2TP。

 

 

参考推荐

IPSec VPN基本原理图解