一、更新系统
确保你的系统是最新的,打开终端并运行以下命令:
- sudo yum update y
二、安装EPEL源并安装OpenVPN和EasyRSA

EPEL(Extra Packages for Enterprise Linux)源提供了许多额外的软件包,安装EPEL源和OpenVPN:
- sudo yum install epelrelease y
- sudo yum install openvpn easyrsa y
三、初始化EasyRSA环境
创建OpenVPN的目录,并将EasyRSA文件复制到指定位置:
- mkdir p ~/openvpnca
- cp r /usr/share/easyrsa/3/* ~/openvpnca/
- cd ~/openvpnca
然后初始化EasyRSA环境:
- ./easyrsa initpki
四、生成CA和服务器证书
完成初始化后,生成CA证书和服务器证书:
- ./easyrsa buildca
- ./easyrsa buildserverfull server nopass
生成DiffieHellman参数:
- ./easyrsa gendh
五、生成客户端证书
为每个客户端生成一个唯一的证书和密钥,例如client1:

- ./easyrsa buildclientfull client1 nopass
六、复制证书和密钥到OpenVPN配置目录
将生成的证书和密钥文件复制到OpenVPN配置目录中:
- mkdir p /etc/openvpn/server
- sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/server
对于客户端证书,可以复制到/etc/openvpn/clients/
或其他合适的位置:
- mkdir p ~/clientconfigs/keys
- cp pki/ca.crt pki/issued/client1.crt pki/private/client1.key ~/clientconfigs/keys/
七、生成ta.key文件
- sudo openvpn genkey secret /etc/openvpn/server/ta.key
八、配置OpenVPN服务器
复制默认的配置文件并进行修改:
- sudo cp /usr/share/doc/openvpn*/sample/sampleconfigfiles/server.conf /etc/openvpn/server/server.conf
编辑/etc/openvpn/server/server.conf
,修改以下关键参数:
- port 1194
- proto udp
- dev tun
- ca ca.crt
- cert server.crt
- key server.key
- dh dh.pem
- 开启客户端之间的通信
- clienttoclient
- 启用NAT
- push "redirectgateway def1 bypassdhcp"
- push "dhcpoption DNS 208.67.222.222"
- push "dhcpoption DNS 208.67.220.220"
- duplicatecn
- keepalive 10 120
- tlscrypt ta.key
- cipher AES256GCM
- auth SHA256
- persistkey
- persisttun
- status /var/log/openvpn/openvpnstatus.log
- verb 3
- explicitexitnotify 1
如果路径不存在,请创建日志目录:

- sudo mkdir p /var/log/openvpn/
九、配置防火墙
确保防火墙允许OpenVPN流量:
- sudo systemctl enable firewalld
- sudo systemctl start firewalld
- sudo firewallcmd zone=public addservice=openvpn permanent
- sudo firewallcmd zone=public addmasquerade permanent
- sudo firewallcmd reload
检查NAT转发是否成功启用:
- sudo firewallcmd zone=public querymasquerade
如果返回yes
,则NAT转发已成功启用。
十、启动OpenVPN服务
在CentOS 7及以上版本,OpenVPN可能会使用openvpnserver@
服务单元:
- sudo systemctl start openvpnserver@server
- sudo systemctl enable openvpnserver@server
检查服务状态:
- sudo systemctl status openvpnserver@server
检查系统日志:
- sudo journalctl xe
你也可以手动运行OpenVPN来直接查看错误信息:
- sudo openvpn config /etc/openvpn/server/server.conf
OpenVPN客户端配置示例
创建一个名为client1.ovpn
的客户端配置文件:
- client
- dev tun
- proto udp
- remote YOUR_SERVER_IP 1194
- resolvretry infinite
- nobind
- persistkey
- persisttun
- remotecerttls server
- complzo
- verb 3
- <ca>root>crt>pki/ca.crt</ca>root>crt>pki/ca.crt<cert>root>crt>pki/issued/client1.crt</cert>root>crt>pki/issued/client1.crt<key>root>crt>pki/private/client1.key</key>root>crt>pki/private/client1.key<tlscrypt>root>crt>pki/ta.key</tlscrypt>root>crt>pki/ta.key<nscerttype>root>crt>server</nscerttype>root>crt>server
将此文件保存到客户端计算机上的适当位置,并使用OpenVPN客户端连接到服务器。
通过以上步骤,你应该能够在CentOS 7上成功安装和配置OpenVPN服务器,并能够从客户端进行连接,如果在过程中遇到任何问题,可以参考下面的FAQ部分。