在CentOS 7上配置OpenVPN服务,可以通过以下几个步骤来实现,这些步骤包括安装OpenVPN和EasyRSA、生成证书、配置服务器和客户端等,以下是详细指南:
一、安装OpenVPN和EasyRSA
1、更新系统

- sudo yum update y
2、安装EPEL源并安装OpenVPN和EasyRSA
- sudo yum install epelrelease y
- sudo yum install openvpn easyrsa y
3、创建目录并复制EasyRSA文件
- mkdir p ~/openvpnca
- cp r /usr/share/easyrsa/3/* ~/openvpnca/
- cd ~/openvpnca
4、初始化EasyRSA环境
- ./easyrsa initpki
5、生成CA证书
- ./easyrsa buildca
6、生成服务器证书和密钥
- ./easyrsa buildserverfull server nopass
7、生成DiffieHellman参数

- ./easyrsa gendh
8、生成客户端证书和密钥
以client1
为例:
- ./easyrsa buildclientfull client1 nopass
9、复制证书和密钥到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
- mkdir p ~/clientconfigs/keys
- sudo cp pki/ca.crt pki/issued/client1.crt pki/private/client1.key ~/clientconfigs/keys/
10、生成ta.key文件
- sudo openvpn genkey secret /etc/openvpn/server/ta.key
二、配置OpenVPN服务器
1、复制默认的配置文件并进行修改
- sudo cp /usr/share/doc/openvpn*/sample/sampleconfigfiles/server.conf /etc/openvpn/server/server.conf
2、编辑/etc/openvpn/server/server.conf
文件
关键参数如下:
- port 1194
- proto udp
- dev tun
- ca ca.crt
- cert server.crt
- key server.key # This file should be kept secret
- dh none
- server 10.8.0.0 255.255.255.0
- ifconfigpoolpersist /var/log/openvpn/ipp.txt
- 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
3、启用IP转发
- sudo sysctl w net.ipv4.ip_forward=1
将上述命令添加到/etc/sysctl.conf
文件中以确保重启后生效:
- net.ipv4.ip_forward = 1
4、配置防火墙
- sudo systemctl enable firewalld
- sudo systemctl start firewalld
- sudo firewallcmd zone=public addservice=openvpn permanent
- sudo firewallcmd zone=public addmasquerade permanent
- sudo firewallcmd reload
5、启动OpenVPN服务
- sudo systemctl start openvpnserver@server
- sudo systemctl enable openvpnserver@server
三、配置OpenVPN客户端
1、准备客户端配置文件
创建client1.ovpn
如下:
- client
- dev tun
- proto udp
- remote YOUR_SERVER_IP 1194
- resolvretry infinite
- nobind
- user nobody
- group nobody
- persistkey
- persisttun
- ca ca.crt
- cert client1.crt
- key client1.key
- remotecerttls server
- tlscrypt ta.key 1
- cipher AES256GCM
- auth SHA256
- keydirection 1
- verb 3
2、连接至服务器
使用以下命令连接到OpenVPN服务器:
- sudo openvpn config /path/to/client1.ovpn
四、常见问题FAQs
Q1: 如何更改OpenVPN服务器的端口号?
A1: 要更改OpenVPN服务器的端口号,只需在server.conf
文件中修改port
指令的值即可,将端口改为443:
- port 443
- proto tcpserver
如果使用TCP协议,还需添加proto tcpserver
指令,确保防火墙规则中允许新的端口号。
Q2: OpenVPN连接失败时如何排查问题?
A2: 如果OpenVPN连接失败,可以按照以下步骤进行排查:
1、检查服务器日志:查看/var/log/openvpn/openvpnstatus.log
和系统日志,查找错误信息。
2、验证证书和密钥:确保所有证书和密钥文件存在且路径正确,特别是ca.crt、server.crt、server.key和ta.key文件。
3、防火墙设置:确认防火墙已正确配置,允许OpenVPN流量通过,可以使用以下命令检查防火墙规则:
- sudo firewallcmd listall
4、网络配置:确保服务器的网络配置正确,能够访问外网,可以使用ping
命令测试网络连通性。
5、客户端配置:检查客户端配置文件中的参数是否正确,尤其是远程地址和端口号。