优秀的编程知识分享平台

网站首页 > 技术文章 正文

docker安装openvpn(docker安装openvpn-as)

nanyue 2025-05-08 20:20:09 技术文章 15 ℃

一、环境准备

  1. 服务器要求:
  • 一台具有外网 IP 的 Linux 服务器(推荐 CentOS/Ubuntu)
  • 确保服务器能够访问互联网,以便拉取 Docker 镜像
  1. 域名或公网 IP:
  • 准备一个可外网访问的域名或公网 IP 地址,用于客户端连接


二、安装 Docker

  1. 安装 Docker: 根据服务器的操作系统选择对应的安装方式:
  • CentOS 7+:


sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker


  • Ubuntu 20.04+:


sudo apt-get update && sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker


验证 Docker 安装:


docker --version
# 输出类似:Docker version 20.x.x, build ...


三、拉取 OpenVPN 镜像

  1. 选择镜像: 根据服务器架构选择合适的镜像:
  • 对于 x86 架构:


docker pull kylemanna/openvpn:2.4


  • 对于 ARM 架构(如树莓派):


docker pull giggio/openvpn-arm


四、生成 OpenVPN 配置文件

  1. 创建数据卷: 为 OpenVPN 创建一个专用的数据卷,用于存储配置文件和密钥


mkdir -p /data/openvpn


运行容器并生成配置文件: 根据镜像选择对应的命令:

  • 对于 x86 架构(kylemanna/openvpn:2.4):


docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://your_domain_or_ip



  • 对于 ARM 架构(giggio/openvpn-arm):


docker run -v /data/openvpn:/etc/openvpn --rm giggio/openvpn-arm ovpn_genconfig -u udp://your_domain_or_ip


注意:将 your_domain_or_ip 替换为你的域名或公网 IP 地址


初始化密钥: 运行以下命令生成 OpenVPN 所需的证书和密钥:


docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_initpki


交互式输入: 在上述过程中,系统会提示你输入以下信息:

  • CA 密码(建议设置为简单密码,如 123456)
  • Common Name(可直接回车,默认为 server)


五、启动 OpenVPN 服务

  1. 运行容器: 根据镜像选择对应的命令:


  • 对于 x86 架构(kylemanna/openvpn:2.4):


docker run -d \
  --name openvpn \
  -v /data/openvpn:/etc/openvpn \
  -p 1194:1194/udp \
  --cap-add=NET_ADMIN \
  --restart unless-stopped \
  kylemanna/openvpn


  • 对于 ARM 架构(giggio/openvpn-arm):


docker run -d \
  --name openvpn \
  -v /data/openvpn:/etc/openvpn \
  -p 1194:1194/udp \
  --cap-add=NET_ADMIN \
  --restart unless-stopped \
  giggio/openvpn-arm


验证容器状态:


docker ps | grep openvpn
# 应该看到 openvpn 容器处于运行状态。


六、配置防火墙

  1. 开放 UDP 1194 端口: 根据服务器的操作系统执行以下命令:
  • CentOS/Firewalld:


firewall-cmd --permanent --add-port=1194/udp
firewall-cmd --reload


  • Ubuntu/UFW:


sudo ufw allow 1194/udp


七、生成客户端配置文件

进入 OpenVPN 数据目录:


cd /data/openvpn


生成客户端证书:


docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_client client1


说明:client1 是客户端的名称,可以根据需要修改。

  1. 导出客户端配置文件: 将以下文件复制到客户端设备:

/data/openvpn/client1.ovpn

/data/openvpn/ca.crt

  1. 分发客户端证书: 将 client1.key 和 client1.crt 文件也提供给客户端(可选)


八、连接测试

  1. 在客户端安装 OpenVPN 客户端软件
  2. 导入 client1.ovpn 配置文件并连接
  3. 检查是否能够访问内网资源或通过 VPN 访问互联网


九、注意事项

  • 备份数据:定期备份 /data/openvpn 目录,以防万一
  • 更新证书:建议每 6 个月更新一次 CA 密钥和证书
  • 安全组设置:如果你在云服务器上运行 OpenVPN,请确保安全组允许 UDP 1194 端口流量


十、常见问题

  1. 无法连接到 VPN:
  • 检查防火墙是否开放了 UDP 1194 端口。
  • 确保客户端配置文件正确无误。
  1. 证书过期:
  • 使用以下命令更新 CA 密钥:


docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_initpki
最近发表
标签列表