OpenVPN在Centos上的安装与配置指南
OpenVPN是一个开源的虚拟专用网(VPN)解决方案,它允许用户通过公共互联网创建一个安全的连接,本文将详细介绍如何在CentOS上安装和配置OpenVPN服务器,并包括一些常见问题的解答,以下是详细内容:

一、准备工作
1、系统要求:确保你的centos系统版本为7或更高,并且具备sudo权限的用户。
2、域名注册:你需要一个域名来解析到你的服务器IP地址,可以通过DigitalOcean控制面板添加DNS记录。
3、防火墙设置:关闭防火墙或者配置必要的规则以允许OpenVPN流量。
4、SELinux配置:临时或永久关闭SELinux以避免潜在的冲突。
二、安装OpenVPN

1、添加EPEL源:
- wget O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel7.repo
2、安装OpenVPN:
- yum install openvpn y
3、安装EasyRSA:
- cd /opt/
- wget https://github.com/OpenVPN/easyrsa/releases/download/v3.0.7/EasyRSA3.0.7.tgz
- tar xf EasyRSA3.0.7.tgz
- mv EasyRSA3.0.7 easyRSA3.0.7
- cp r easyRSA3.0.7/ /etc/openvpn/easyrsa3
- cp /etc/openvpn/easyrsa3/vars.example /etc/openvpn/easyrsa3/vars
三、配置证书和密钥
1、初始化PKI目录:
- cd /etc/openvpn/easyrsa3/
- ./easyrsa initpki
2、创建根证书:

- ./easyrsa buildca nopass
3、创建服务器密钥和证书签名请求(CSR):
- ./easyrsa genreq server nopass
4、签署服务器证书:
- ./easyrsa signreq server server
5、生成DiffieHellman参数文件:
- ./easyrsa gendh
6、创建TLS认证密钥:
- openvpn genkey secret /etc/openvpn/ta.key
四、配置OpenVPN服务器
1、复制证书和密钥到相应目录:
- cp ca.crt dh.pem /etc/openvpn/
- cp private/server.key issued/server.crt /etc/openvpn/server/
- cp private/client.key issued/client.crt /etc/openvpn/client/
2、编辑服务器配置文件(/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
3、启动OpenVPN服务:
- systemctl start openvpn@server
- systemctl enable openvpn@server
五、配置OpenVPN客户端
1、拷贝证书和密钥到客户端机器:
- cp /etc/openvpn/client/sampleconfigfiles/client.ovpn /path/to/client/config/directory/
2、编辑客户端配置文件(client.ovpn
):
- client
- dev tun
- proto udp
- remote your_server_ip 1194
- resolvretry infinite
- nobind
- user nobody
- group nobody
- persistkey
- persisttun
- ca ca.crt
- cert client.crt
- key client.key
- remotecerttls server
- tlscrypt ta.key 1
- verb 3
3、启动OpenVPN客户端:
- openvpn config /path/to/client/config/directory/client.ovpn
六、常见问题解答(FAQs)
Q1: 如何更改OpenVPN服务器的端口数?
A1: 在服务器配置文件server.conf
中修改port
指令的值即可,将port 1194
改为port 1234
。
Q2: OpenVPN连接失败时如何排查问题?
A2: 首先检查服务器和客户端的日志文件,服务器日志通常位于/var/log/openvpn.log
,客户端日志则可以通过命令行参数verb
设置为更高的级别来获取更多信息,确保防火墙规则允许OpenVPN使用的端口,并且SELinux已正确配置,如果使用的是基于证书的身份验证,请确保所有证书都已正确签署并放置在指定位置。