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]

PPTP L2TP/IPSec OpenVPN
背景 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/5 4/5 5/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

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