在CentOS 7上部署OpenVPN,涉及多个步骤和配置,以下是一个详细的指南:
环境搭建
1、添加EPEL YUM源:

使用wget
命令下载EPEL源的repo文件。
wget O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel7.repo
2、安装证书生成工具EasyRSA:
通过YUM安装EasyRSA。
yum y install easyrsa
3、创建证书环境目录:

创建目录并复制EasyRSA配置文件。
mkdir p /opt/easyrsa
cp a /usr/share/easyrsa/3.0.8/* /opt/easyrsa/
cp a /usr/share/doc/easyrsa3.0.8/vars.example /opt/easyrsa/vars
4、修改vars配置文件:
根据需求取消注释并设置相关参数。

- set_var EASYRSA_DN "cn_only"
- set_var EASYRSA_REQ_COUNTRY "CN"
- set_var EASYRSA_REQ_PROVINCE "GuangDong"
- set_var EASYRSA_REQ_CITY "GuangZhou"
- set_var EASYRSA_REQ_ORG "IT"
- set_var EASYRSA_REQ_EMAIL "IT@qq.com"
- set_var EASYRSA_NS_SUPPORT "yes"
5、初始化并创建证书:
初始化pki目录。
cd /opt/easyrsa
./easyrsa initpki
创建根证书。
./easyrsa buildca
创建服务端和客户端证书及密钥。
./easyrsa genreq server nopass
./easyrsa signreq server server
./easyrsa genreq client nopass
./easyrsa signreq client client
OpenVPN服务端部署
1、安装OpenVPN:
yum install y openvpn
2、创建TLS认证密钥:
openvpn genkey secret /etc/openvpn/ta.key
3、配置服务器配置文件:
编辑/etc/openvpn/server.conf
,根据需要进行配置。
- port 1194
- proto tcp
- dev tun
- ca ca.crt
- cert server.crt
- key server.key
- dh dh.pem
- server 10.8.0.0 255.255.255.0
- push "route 10.66.17.0 255.255.255.0"
- ifconfigpoolpersist ipp.txt
- keepalive 10 120
- maxclients 100
- status openvpnstatus.log
- verb 3
- clienttoclient
- log /var/log/openvpn.log
- persistkey
- persisttun
- tlsauth /etc/openvpn/ta.key 0
- duplicatecn
- scriptsecurity 3
- authuserpassverify /etc/openvpn/check.sh viaenv
- usernameascommonname
- clientconfigdir /etc/openvpn/ccd
4、启动并启用OpenVPN服务:
systemctl start openvpn@server
systemctl enable openvpn@server
OpenVPN客户端部署
1、安装OpenVPN客户端软件:
在客户端机器上安装OpenVPN软件包。
2、拷贝证书和配置文件到客户端:
将服务端生成的客户端证书(如client.crt
,client.key
,ca.crt
,ta.key
)拷贝到客户端相应目录。
创建或编辑客户端配置文件client.ovpn
类似如下:
- client
- dev tun
- proto udp
- remote <服务器IP> 1194
- resolvretry infinite
- nobind
- persistkey
- persisttun
- ca ca.crt
- cert client.crt
- key client.key
- remotecerttls server
- tlsauth ta.key 1
- cipher AES256CBC
- verb 3
常见问题解答(FAQs)
1、问题:如何检查OpenVPN服务是否正常运行?
答案:可以使用以下命令检查OpenVPN服务状态:
- systemctl status openvpn@server
如果显示“active (running)”则表示服务正在运行。
2、问题:客户端无法连接到OpenVPN服务器怎么办?
答案:首先检查客户端和服务端的日志文件(通常位于/var/log/openvpn.log
),查找错误信息,确保客户端使用的是正确的配置文件和证书,并且服务器防火墙允许OpenVPN流量通过。