在 CentOS 系统中配置 VPN(虚拟专用网络)可以通过多种方式实现,包括使用 OpenVPN、PPTP、L2TP/IPsec 等协议,以下是如何在 CentOS 8 上配置 OpenVPN 服务器的详细步骤:
准备工作
1、系统要求:确保你有一台启用了 sudo 非 root 用户和防火墙的 CentOS 8 服务器。

2、安装 EPEL 库:CentOS 8 默认不包含 OpenVPN 和 EasyRSA,需要先安装 EPEL 库。
- sudo dnf install epelrelease y
二、安装 OpenVPN 和 EasyRSA
1、安装 OpenVPN 和 EasyRSA:
- sudo dnf install openvpn easyrsa firewalld y
2、创建 EasyRSA 目录:
- mkdir ~/easyrsa
- cd ~/easyrsa
3、初始化 PKI(公钥基础设施):
- /usr/share/easyrsa/3/easyrsa initpki
4、生成 CA 证书:

- ./easyrsa buildca nopass
5、生成服务端密钥:
- ./easyrsa buildserverfull vpnserver nopass
6、生成客户端密钥:
- ./easyrsa gendh
- ./easyrsa buildclientfull vpnclient nopass
7、生成 TLS Auth 密钥:
- openvpn genkey secret pki/ta.key
配置 OpenVPN 服务端
1、复制证书到配置目录:
- cp pki/ca.crt pki/private/vpnserver.key pki/issued/vpnserver.crt pki/dh.pem pki/ta.key ~/easyrsa/pki/
2、编辑 OpenVPN 配置文件:
- vim /etc/openvpn/server.conf
3、添加以下配置:

- dev tun
- proto udp
- port 1194
- keepalive 10 120
- maxclients 5
- ca ca.crt
- cert server.crt
- key server.key
- dh dh.pem
- tlsauth ta.key 0
- cipher AES256CBC
- auth SHA512
- tlsversionmin 1.2
- cipher AES256CBC
- auth SHA256
- tlscipher TLSDHERSAWITHAES256GCMSHA384:TLSDHERSAWITHAES256CBCSHA256:TLSDHERSAWITHAES128GCMSHA384:TLSDHERSAWITHAES128CBCSHA256
- user nobody
- group nobody
- persistkey
- persisttun
- complzo
- push "redirectgateway def1 bypassdhcp"
- push "dhcpoption DNS 8.8.8.8"
- push "dhcpoption DNS 8.8.4.4"
- logappend /var/log/openvpn.log
- verb 3
4、启动并启用 OpenVPN 服务:
- systemctl start openvpn@server
- systemctl enable openvpn@server
配置防火墙与流量转发
1、放行 OpenVPN 入网流量:
- sudo firewallcmd permanent addservice=openvpn
- sudo firewallcmd reload
2、开启 IP 转发:
- sudo sysctl w net.ipv4.ip_forward=1
- sudo sysctl p net.ipv4.ip_forward
3、检查 IP 转发状态:
- sudo sysctl net.ipv4.ip_forward
常见问题与FAQ
1、如何生成客户端配置文件?:在 OpenVPN 服务器上,可以使用easyrsa
工具生成客户端配置文件,具体步骤如下:
- cd ~/easyrsa/pki
- cp openvpn.cnf openvpnclient.cnf
- vim openvpnclient.cnf
- # Uncomment the following lines and set the appropriate paths:
- ca ca.crt
- cert client.crt
- key client.key
- # Add any additional configuration options as needed.
2、如何导入客户端配置文件到客户端机器?:将生成的客户端配置文件(如client.ovpn
)复制到客户端机器上,然后使用 OpenVPN 客户端软件导入该配置文件,即可连接到 VPN 服务器。
3、如何解决连接问题?:如果客户端无法连接到 VPN 服务器,请检查以下几个方面:
确保 VPN 服务器上的防火墙规则已正确配置,允许 OpenVPN 流量通过。
确保 VPN 服务器上的 OpenVPN 服务正在运行,并且配置文件中的设置正确无误。
确保客户端使用的是正确的客户端配置文件,并且该文件未损坏或被篡改。
如果使用的是自签名证书,请确保客户端信任该证书,可以将证书导入到客户端的受信任证书存储中,或者在客户端配置文件中添加相应的选项来信任该证书。