PPTP、L2TP/IPSec、OpenVPN比较选择

2011年9月13日 | 分类: 翻墙相关 | 标签: , , ,

PPTP VPN、L2TP/IPSec VPN、OpenVPN是最常用的三种VPN形式,下面的列表详细比较了其各方面的性能和优劣。

再做个调查看看你喜欢什么方式的VPN。

[ 资料来源:iVPN.net: PPTP vs L2TP vs OpenVPN   翻译来源:PPTP vs. L2TP vs. OpenVPN]

PPTPL2TP/IPSecOpenVPN
背景PPTP 是一个基于 PPP 的很基本的协议。PPTP 是微软 Windows 平台第一个支持的 VPN 协议。PPTP 标准并没有实际描述加密和授权特性,并且依赖于 PPP 协议的隧道来实现安全功能。L2TP 是一个在 IETF RFC 3193 中被正式标准化的高级协议。推荐在需要安全加密的地方用来替代 PPTP。OpenVPN 是一个高级的开源 VPN 解决方案,由 “OpenVPN technologies” 支持,并且已经成为开源网络领域里的事实标准。OpenVPN 使用成熟的 SSL/TLS 加密协议。
数据加密PPP 负载是使用微软点对点协议(Microsoft’s Point-to-Point Encryption protocol,MPPE)加密。MPPE 实现了 RSA RC4 加密算法,并使用最长 128 位密钥。L2TP 负载使用标准的 IPSec 协议加密。在 RFC 4835 中指定了使用 3DES 或 AES 加密算法作为保密方式。OpenVPN 使用 OpenSSL 库来提供加密。OpenSSL 支持好几种不同的加密算法,如:3DES,AES,RC5 等。
安装/配置Windows 所有版本和大多数其他操作系统包括移动平台都内建了对 PPTP 的支持。PPTP 只需要一个用户名和密码,以及一个服务器地址,所以安装和配置相当简单。从 2000/XP 起的所有 Windows 平台和 Mac OS X 10.3+ 都内建了 L2TP/IPSec 的支持。大多数现代的移动平台比如 iPhone 和 Android 也有内建的客户端。OpenVPN 不包含在任何操作系统中,需要安装客户端软件,但安装也是相当简单,基本上 5 分钟可以完成。
速度由于使用 128 位密钥,加密开销相比 OpenVPN 使用 256位密钥要小,所以速度感觉稍快一点,但这个差异微不足道。L2TP/IPSec 将数据封装两次,所以相比其他竞争者效率稍低,速度也慢一些。当使用默认的 UDP 模式,OpenVPN 的表现是最佳的。
端口PPTP 使用 TCP 1723 端口和 GRE(协议 47)。通过限制 GRE 协议,PPTP 可以轻易地被封锁。L2TP/IPSec 使用 UDP 500 端口用来初始化密钥交换,使用协议 50 用来传输 IPSec 加密的数据( ESP ),使用 UDP 1701 端口用来初始化 L2TP 的配置,还使用 UDP 4500 端口来穿过 NAT。L2TP/IPSec 相比 OpenVPN 容易封锁,因为它依赖于固定的协议和端口。OpenVPN 可以很容易的配置为使用任何端口运行,也可以使用 UDP 或 TCP 协议。为了顺利穿越限制性的防火墙,可以将 OpenVPN 配置成使用 TCP 443 端口,因为这样就无法和标准的 HTTPS 无法区分,从而极难被封锁。
稳定性/兼容性PPTP 不如 OpenVPN 可靠,也不能像 OpenVPN 那样在不稳定网络中快速恢复。另外还有部分同 GRE 协议和一些路由器的兼容性问题。L2TP/IPSec 比 OpenVPN 更复杂,为了使在 NAT 路由器下的设备可靠地使用,配置可以会更加困难。但是,只要服务器和客户端都支持 NAT 穿越,那么就没什么问题了。无论是无线网络、蜂窝网络,还是丢包和拥塞经常发生的不可靠网络,OpenVPN 都非常稳定、快速。对于那些相当不可以的连接,OpenVPN 有一个 TCP 模式可以使用,但是要牺牲一点速度,因为将 TCP 封装在 TCP 时效率不高。
安全弱点微软实现的 PPTP 有一个严重的安全问题(serious security vulnerabilities)。对于词典攻击来说 MSCHAP-v2 是很脆弱的,并且 RC4 算法也会遭到“位翻转攻击( bit-flipping attack )”。如果保密是重要的,微软也强烈建议升级到 IPSec。IPSec 没有明显的漏洞,当和安全加密算法如 AES 一起使用时,被认为是很安全的。OpenVPN 也没有明显漏洞,当和安全加密算法如 AES 一起使用时,也被认为是相当安全的。
客户端的兼容性
  • Windows
  • Mac OS X
  • Linux
  • Apple iOS
  • Android
  • DD-WRT
  • Windows
  • Mac OS X
  • Linux
  • Apple iOS
  • Android
  • Windows
  • Mac OS X
  • Linux
结论由于主要的安全漏洞,除了兼容性以外没有好的理由选择使用 PPTP。如果你的设备既不支持 L2TP/IPSec 又不支持 OpenVPN,那么 PPTP 是一个合理的选择。如果关心快速安装和简易配置,那么 L2TP/IPSec 值得考虑。L2TP/IPSec 是优秀的,但相比 OpenVPN 的高效和杰出的稳定性要落后一点。如果你使用运行 iOS 或 Android 的移动设备,那么这就是最佳的选择,因为 OpenVPN 目前还不支持这些平台。另外,如果需要快速安装,L2TP/IPSec 也是一个较佳的选择。对于所有的 Windows, Mac OS X 以及 Linux 桌面用户来说,OpenVPN 是最好的选择。OpenVPN 速度快,并且安全可信。但劣势是缺乏对移动设备的支持,另外还需要安装第三方客户端。
等级1/54/55/5
注:单纯的L2TP VPN是不加密的是不安全的,OpenVPN也可以在Android/Apple iOS/DD-WRT/WM/Web OS/MeeGo设备上使用。
除了上面三种常见VPN类型外也有不少VPN服务商提供SSTP VPN和Cisco IPsec VPN类型,还有IKEv2 VPN等其他VPN类型,这么多的VPN类型你喜欢哪些呢?

网络上提供免费PPTP VPN、OpenVPN的较多,提供免费L2TP/IPSec VPN较少,提供免费SSTP VPN和Cisco IPsec VPN的基本没有。

PPTP VPN一般使用MPPE 128-Bit加密
L2TP/IPSec VPN一般使用AES 128-Bit加密,如果你在“数据加密”里选“最大强度的加密”则可能使用AES 256-Bit加密
SSTP VPN一般使用AES 256-Bit加密

附上前50个的投票结果,欢迎大家继续投票!

本文原始地址http://igfw.net/archives/5156

  1. cqjerry
    2011年9月24日22:50

    到现在也没搞明白SSH和VPN到底有啥本质的区别。博主能否解答一二?谢谢。

  2. 匿名
    2011年9月20日10:55

    你好,我用的是美服支持PPTP和L2TP两种,连接PPTP的时候需要用Google的DNS才行而ISP的DNS就连接不上,但是L2TP不管用哪个DNS都是一直连不上,因为L2TP安全所以不想用PPTP了,求解。

    • iGFW
      2011年9月20日11:14

      估计是你服务器提供商的问题,你可以咨询下,L2TP直接使用IP连接,再看看l2tp vpn的密钥有没有设置正确。

  3. v2ex
    2011年9月16日12:00

    IKEv2和Cisco IPSec VPN效率最高,一般用这个,OpenVPN也不错, 再次之就是L2TP/IPSec,PPTP坚决弃用。

    • iGFW
      2011年9月16日12:19

      pptp使用最简单的,用的人也很多的,又不是什么“十恶不赦”用不着那么注重安全性,至于你说的效率就不清楚了。

  4. macbook
    2011年9月14日08:40

    雖然可以自己設路由表,還是ssh方式靈活些。

    • kylin
      2011年9月15日00:50

      问题是好的免费SSH太少了,而免费VPN就比较好找了

      • kylin
        2011年9月15日00:52

        我现在一般都在虚拟机里面开VPN,正常网站放主系统里面浏览,需要翻墙的时候就打开虚拟机

      • iGFW
        2011年9月15日01:01

        其实免费SSH要比免费vpn多的多的多。

  5. a
    2011年9月13日23:24

    iGFW,你知不知道openvpn那个10mbps的虚拟网卡除了自行修改编译外,有没有办法改变。不知道这个数值对实际网速的影响有还是没有

    • iGFW
      2011年9月14日10:18

      不清楚,我网速没10M没关注过。

  6. abc
    2011年9月13日22:03

    觉得最省事的是pptp.(不过,我们这里,这个已经不能使用了.)
    还可以的是l2tp. (这个设置起来只是麻烦了一点点,在windows下也可以不用任何软件就能建立链接).
    最麻烦的是openvpn.这个安装完,不启用VPN时,总会在右下角出现一个未连接的网卡标志.其他两个VPN没有这个问题.

    • iGFW
      2011年9月13日22:22

      未连接的网卡标志 你是XP系统吧,那个是openvpn的虚拟网卡,可以让它不显示,方法如下:
      首先,运行C:\Program Files\OpenVPN\bin目录下的deltapall.bat文件,在打开的窗口里按回车键直至窗口消失,删除以前的虚拟网卡。
      然后,记事本打开C:\Program Files\OpenVPN\driver目录下的OemWin2k.inf文件,搜索Characteristics = 0x81找到后将其修改为Characteristics = 0x89保存文件。
      最后,运行C:\Program Files\OpenVPN\bin目录下的addtap.bat文件,打开的窗口稍等即可完成虚拟网卡创建(过程中有提示点击仍然继续)。
      这样就不会显示未连接的网卡标志了。

      • abc
        2011年9月14日20:02

        EN,已经照着你的教程修改过了.谢了.

  7. 流水吻石头
    2011年9月13日20:32

    博主是做什么工作的呀 感觉在这方面很内行