VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道;
OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。
OpenVpn的技术核心是虚拟网卡,其次是SSL协议实现: 虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如浏览器)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是OpenVpn能够跨平台一个很重要的理由。
在OpenVpn中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN模式)或数据帧(TAP模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过SOCKET从外网上发送出去,远程服务程序通过SOCKET从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。
1.安装:
$ sudo apt-get install openvpn
2.找目的网络的管理员获取相关的证书、公钥以及CA证书:client.key,client.crt,ca.crt,和相应的配置文件client.ovpn
3.修改配置文件client.ovpn(如果网络管理员提供的ovpn已经修改好以下内容,则可以不需要改动,只需确保.key、.crt的名称对应即可)
$ vim client.ovpn
找到
;remote my-server-2 1194
将之修改未自己的服务端ip地址以及对应的端口,如(开头分号 ';' 去掉)
remote xxx.xxx.xxx.xxx 1194
找到
ca ca.crt
cert client.crt
key client.key
将以上的client.crt、client.key修改为你对应的key和crt的文件名称,确保ca.crt、client.crt、client.key和client.ovpn都在同个目录文件夹下;
4.cd到配置文件.ovpn所在的目录,否则会出现找不到client.crt,client.key,ca.crt的错误,执行以下命令进行连接:
$ sudo openvpn --config /path/to/config.ovpn
则可以进行连接了,连接后将会显示以下连接的信息:
Initialization Sequence Completed