使用容器部署 OpenVPN

这篇文章(5ad5ff7346021671da825337)是从 Teambition 迁移过来的

部署过程使用了开源项目:kylemanna/docker-openvpn,详细文档请访问 https://github.com/kylemanna/docker-openvpn

  1. 为数据卷选个名字存放到环境变量 $OVPN_DATA,建议使用 ovpn-data- 前缀来方便识别。在下面的示例中请替换 example
  OVPN_DATA="ovpn-data-example"
  1. 初始化 $OVPN_DATA 容器,这个容器将用来存放配置文件与证书。 初始化过程中会提示输入密码来保护证书。下面的示例中请使用合适的域名或 IP 地址替换 VPN.SERVERNAME.COM
  docker volume create --name $OVPN_DATA
  docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
  docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
  1. 启动容器
  docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
  1. 生成客户端证书(无密码)
  docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass
  1. 导出客户端配置文件(包含证书)
  docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn