OpenVPN

介绍

官方网站

GitHub

💡 OpenVPN是一个虚拟专用网络(VPN)系统,采用各种技术创建在路由或桥接配置中的安全点对点或站点对站点连接,以及远程访问设施。它实现了客户端和服务器应用程序。

它是一个开源项目,遵循GPL许可。OpenVPN允许创建一个加密的隧道,通过这个隧道,数据可以在互联网上安全地传输,从而实现远程访问或连接不同网络的功能。该系统极具灵活性,支持多种加密标准和认证机制,并且能够在各式各样的网络环境中部署,包括通过NAT和防火墙。

OpenVPN广泛应用于个人隐私保护、企业远程工作、安全链接云计算环境等场景,是商业和个人用户常用的VPN解决方案之一。


安装

部署OpenVPN服务器使用Docker可以简化安装和配置过程。以下是一个基本的步骤指南,帮助你通过Docker部署OpenVPN服务器:

步骤 1: 安装Docker

首先,确保你的系统上安装了Docker。如果还没有安装,可以根据你的操作系统访问 Docker官方网站 获取安装指南。

步骤 2: 选择一个OpenVPN镜像

在Docker Hub上有多个OpenVPN的镜像可供选择。一个流行的选择是使用 kylemanna/openvpn 镜像。该镜像广泛被社区使用,并有良好的文档支持。

步骤 3: 创建Docker容器

  1. 初始化OpenVPN数据卷:

    1
    docker volume create --name openvpn-data
  2. 生成OpenVPN配置与服务器证书:

    1
    2
    docker run -v openvpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
    docker run -v openvpn-data:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki

    替换 VPN.SERVERNAME.COM 为你的实际服务器地址。

  3. 启动OpenVPN服务器:

    1
    docker run -v openvpn-data:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

    这里 -d 使容器在后台运行,-p 1194:1194/udp 将容器的1194端口映射到主机的1194端口,--cap-add=NET_ADMIN 给予容器一些网络管理相关的权限,这对于运行VPN是必要的。

步骤 4: 创建客户端证书

  1. 生成客户端证书:

    1
    docker run -v openvpn-data:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass

    替换 CLIENTNAME 为你想要的客户端证书名。

  2. 检索客户端配置文件:

    1
    docker run -v openvpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

    这会生成一个名为 CLIENTNAME.ovpn 的文件,这是客户端需要使用的配置文件。

步骤 5: 连接到VPN

将生成的 .ovpn 文件导入到你的OpenVPN客户端软件中(如 OpenVPN Connect 或其他支持OpenVPN的客户端软件),然后尝试连接。

这些步骤为你提供了一个基础的OpenVPN服务器部署方法。根据你的具体需求,你可能还需要进行进一步的配置和调优,如调整加密设置、配置路由选项等。