2026年OpenVPN服务端与客户端部署全攻略

一、环境准备与系统初始化

1.1 服务器环境选择

推荐使用主流Linux发行版的最新LTS版本(如Ubuntu 24.04 LTS),其内核优化和软件包更新策略更适合长期稳定运行。采用x86_64架构的虚拟机或物理机,建议配置2核4G内存起步,确保能同时承载50+并发连接。

1.2 最小化安装部署

通过ISO镜像安装时选择”Minimal Install”选项,仅安装基础系统组件。安装完成后执行以下初始化操作:

  1. # 更新软件包索引
  2. sudo apt update && sudo apt upgrade -y
  3. # 安装必要工具链
  4. sudo apt install -y vim curl wget net-tools
  5. # 配置时区与本地化
  6. sudo timedatectl set-timezone Asia/Shanghai
  7. sudo locale-gen zh_CN.UTF-8

二、证书体系构建

2.1 证书颁发机构搭建

OpenVPN采用PKI体系实现双向认证,需先构建CA中心:

  1. # 安装核心组件
  2. sudo apt install -y openvpn easy-rsa
  3. # 创建CA工作目录
  4. mkdir ~/openvpn-ca && cd ~/openvpn-ca
  5. # 初始化配置模板
  6. cp -r /usr/share/easy-rsa/* .
  7. vim vars # 修改以下关键参数

在vars文件中需配置的证书属性(示例):

  1. set_var EASYRSA_REQ_COUNTRY "CN"
  2. set_var EASYRSA_REQ_PROVINCE "Beijing"
  3. set_var EASYRSA_REQ_CITY "Haidian"
  4. set_var EASYRSA_REQ_ORG "TechCorp"
  5. set_var EASYRSA_REQ_EMAIL "admin@example.com"
  6. set_var EASYRSA_REQ_OU "IT Security"

2.2 证书生成流程

  1. 初始化PKI环境

    1. ./easyrsa init-pki
    2. # 若报错需创建软链接
    3. sudo ln -s /usr/share/easy-rsa/easyrsa .
  2. 构建根证书

    1. ./easyrsa build-ca nopass # 生产环境建议设置密码
  3. 生成服务端证书

    1. ./easyrsa gen-req server01 nopass
    2. ./easyrsa sign-req server server01 # 签名时需确认
  4. 生成Diffie-Hellman参数(耗时较长):

    1. ./easyrsa gen-dh # 建议使用2048位以上
  5. 创建TLS认证密钥

    1. openvpn --genkey secret ta.key

最终证书文件结构:

  1. /home/user/openvpn-ca/
  2. ├── pki/
  3. ├── ca.crt # CA根证书
  4. ├── private/
  5. └── server01.key # 服务端私钥
  6. ├── issued/
  7. └── server01.crt # 服务端证书
  8. └── dh.pem # DH参数文件
  9. └── ta.key # TLS认证密钥

三、服务端配置

3.1 证书文件部署

将证书文件复制到标准目录:

  1. sudo mkdir -p /etc/openvpn/server
  2. sudo cp ~/openvpn-ca/pki/{ca.crt,dh.pem} /etc/openvpn/server/
  3. sudo cp ~/openvpn-ca/pki/issued/server01.crt /etc/openvpn/server/
  4. sudo cp ~/openvpn-ca/pki/private/server01.key /etc/openvpn/server/
  5. sudo cp ~/openvpn-ca/ta.key /etc/openvpn/server/

3.2 主配置文件

创建/etc/openvpn/server/server.conf

  1. port 1194
  2. proto udp
  3. dev tun
  4. # 证书配置
  5. ca ca.crt
  6. cert server01.crt
  7. key server01.key
  8. dh dh.pem
  9. # 网络配置
  10. server 10.8.0.0 255.255.255.0
  11. ifconfig-pool-persist ipp.txt
  12. push "redirect-gateway def1 bypass-dhcp"
  13. push "dhcp-option DNS 8.8.8.8"
  14. # 安全加固
  15. keepalive 10 120
  16. tls-auth ta.key 0
  17. cipher AES-256-CBC
  18. persist-key
  19. persist-tun
  20. # 日志与用户
  21. status openvpn-status.log
  22. verb 3
  23. explicit-exit-notify 1
  24. user nobody
  25. group nogroup

3.3 系统服务配置

  1. 启用IP转发:

    1. echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
    2. sudo sysctl -p
  2. 配置防火墙规则(以ufw为例):

    1. sudo ufw allow 1194/udp
    2. sudo ufw allow OpenSSH
    3. sudo ufw enable
  3. 创建系统服务:

    1. sudo systemctl enable openvpn@server
    2. sudo systemctl start openvpn@server

四、客户端配置

4.1 客户端证书生成

  1. # 生成客户端证书
  2. ./easyrsa gen-req client01 nopass
  3. ./easyrsa sign-req client client01
  4. # 打包客户端配置
  5. mkdir -p ~/client-configs/{files,keys}
  6. cp ~/openvpn-ca/pki/{ca.crt,ta.key} ~/client-configs/keys/
  7. cp ~/openvpn-ca/pki/issued/client01.crt ~/client-configs/keys/
  8. cp ~/openvpn-ca/pki/private/client01.key ~/client-configs/keys/

4.2 客户端配置文件

创建~/client-configs/files/client01.ovpn

  1. client
  2. dev tun
  3. proto udp
  4. remote your.server.ip 1194
  5. resolv-retry infinite
  6. nobind
  7. persist-key
  8. persist-tun
  9. remote-cert-tls server
  10. cipher AES-256-CBC
  11. verb 3
  12. <ca>
  13. # 粘贴ca.crt内容
  14. </ca>
  15. <cert>
  16. # 粘贴client01.crt内容
  17. </cert>
  18. <key>
  19. # 粘贴client01.key内容
  20. </key>
  21. <tls-auth>
  22. # 粘贴ta.key内容
  23. </tls-auth>
  24. key-direction 1

4.3 多平台客户端

  • Windows/macOS:使用官方GUI客户端导入.ovpn文件
  • Linux:将配置文件放入/etc/openvpn/client/目录
  • 移动端:使用OpenVPN Connect应用扫码导入配置

五、高级配置与维护

5.1 用户认证扩展

  1. 创建用户认证文件:

    1. sudo touch /etc/openvpn/server/passwd
    2. sudo chown nobody:nogroup /etc/openvpn/server/passwd
  2. 修改服务端配置添加:

    1. plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so login
    2. client-cert-not-required
    3. username-as-common-name

5.2 动态IP支持

对于家庭宽带等动态IP场景:

  1. 使用DDNS服务(如No-IP)
  2. 在客户端配置中添加:
    1. remote my.ddns.hostname 1194

5.3 监控与日志

  1. 实时监控连接:

    1. tail -f /var/log/openvpn.log
  2. 使用日志分析工具(如GoAccess)处理访问日志

  3. 配置监控告警:
    ```bash

    检查服务状态

    systemctl status openvpn@server —no-pager

监控连接数

netstat -anp | grep 1194 | grep ESTABLISHED | wc -l

  1. # 六、安全加固建议
  2. 1. **证书管理**:
  3. - 定期轮换证书(建议每2年)
  4. - 启用证书吊销列表(CRL
  5. 2. **网络防护**:
  6. - 限制连接速率(如使用iptables
  7. - 启用fail2ban防护暴力破解
  8. 3. **加密升级**:
  9. ```ini
  10. # 在服务端和客户端配置中更新
  11. cipher AES-256-GCM
  12. auth SHA256
  1. 双因素认证
    • 集成Google Authenticator
    • 或使用证书+密码双重认证

本指南完整覆盖了从环境搭建到生产部署的全流程,通过标准化配置和安全实践,可帮助企业快速构建可靠的VPN接入方案。实际部署时建议先在测试环境验证所有配置,再逐步迁移到生产环境。