wiki:openvpn
OpenVPN
OpenVPN是一个用于创建虚拟私人网络加密通道的软件包。
OpenVPN允许建立的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。
它大量使用了OpenSSL加密库中的SSL/TLS协议函数库。
目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Microsoft Windows以及Android和iOS上运行。
原理
OpenVPN的技术核心是虚拟网卡,其次是SSL协议实现。
虚拟网卡
在OpenVPN中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),
则操作系统会通过路由机制将数据包(TUN模式)或数据帧(TAP模式)发送到虚拟网卡上,
服务程序接收该数据并进行相应的处理后,会通过SOCKET从外网上发送出去。
这完成了一个单向传输的过程,反之亦然。
当远程服务程序通过SOCKET从外网上接收到数据,并进行相应的处理后,又会发送回给虚拟网卡,则该应用软件就可以接收到。
加密
OpenVPN使用OpenSSL库来加密数据与控制信息。
这意味着,它能够使用任何OpenSSL支持的算法。
它提供了HMAC功能以提高连接的安全性。
此外,OpenSSL的硬件加速也能提高它的性能。
相关网站
wiki/openvpn.txt · 最后更改: 2024/04/17 11:10 由 math