CentOS下搭建OpenVPN服务完整教程,从安装到客户端配置详解

dfbn6 2026-05-18 半仙VPN 1 0

在企业网络部署或远程办公场景中,虚拟私人网络(VPN)是保障数据安全传输的重要手段,CentOS作为广泛使用的Linux发行版,其稳定性与安全性使其成为搭建VPN服务的理想平台,本文将详细介绍如何在CentOS系统上安装并配置OpenVPN服务,包括服务器端部署、证书生成、防火墙设置及客户端连接步骤,帮助你快速构建一个稳定可靠的私有网络通道。

准备工作
确保你拥有一个运行CentOS 7或8的服务器(推荐使用最小化安装版本),并具备root权限,首先更新系统软件包:

sudo yum update -y

安装OpenVPN及相关依赖
OpenVPN依赖Easy-RSA来管理SSL/TLS证书,我们先安装这些组件:

sudo yum install -y openvpn easy-rsa

配置Easy-RSA证书颁发机构(CA)
Easy-RSA默认位于/usr/share/easy-rsa目录,复制模板到本地目录并初始化:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

编辑vars文件,设置你的组织信息(如国家、省份、公司名等):

nano vars

修改如下字段(示例):

export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"

然后执行初始化和生成CA密钥:

./clean-all
./build-ca

按提示输入CA名称(如“MyCA”),即可完成CA根证书创建。

生成服务器证书和密钥
继续在easy-rsa目录下生成服务器证书:

./build-key-server server

同样按提示操作,确认是否签署证书(输入“yes”),完成后会生成server.crtserver.key文件。

生成Diffie-Hellman参数
这是用于密钥交换的关键步骤,耗时较长但必不可少:

./build-dh

配置OpenVPN服务器
复制示例配置文件并编辑:

cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/
nano /etc/openvpn/server.conf

关键配置项修改如下(可根据需要调整):

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/ca.crt
cert /etc/openvpn/easy-rsa/server.crt
key /etc/openvpn/easy-rsa/server.key
dh /etc/openvpn/easy-rsa/dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

其中server 10.8.0.0 255.255.255.0定义了内部IP段,push "redirect-gateway"使客户端流量走VPN隧道。

启用IP转发与防火墙规则
开启内核IP转发功能:

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

配置iptables规则(以CentOS 7为例):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
sudo service iptables save

若使用firewalld(CentOS 8):

sudo firewall-cmd --permanent --add-port=1194/udp
sudo firewall-cmd --reload

启动OpenVPN服务并设置开机自启

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server
sudo systemctl status openvpn@server

客户端配置
为每个用户生成单独的证书(如用户“client1”):

./build-key client1

将以下文件打包发送给客户端:

  • ca.crt(CA证书)
  • client1.crt(客户端证书)
  • client1.key(客户端私钥)

客户端配置文件(如client1.ovpn)示例如下:

client
dev tun
proto udp
remote your-server-ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

总结
至此,你已成功在CentOS上部署了一个完整的OpenVPN服务,该方案支持多用户接入、加密通信,并可扩展至高可用架构,建议定期更新证书、监控日志,并结合Fail2Ban等工具增强安全性,对于生产环境,还可考虑集成LDAP认证或双因素验证,进一步提升防护等级。

CentOS下搭建OpenVPN服务完整教程,从安装到客户端配置详解

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN