CentOS 系统下搭建 OpenVPN 服务的完整配置指南

dfbn6 2026-04-03 半仙VPN 18 0

在现代企业网络架构中,虚拟专用网络(VPN)已成为远程办公、安全访问内网资源和跨地域通信的重要工具,作为网络工程师,掌握在 CentOS 系统上部署与配置 OpenVPN 的技能至关重要,本文将详细介绍如何在 CentOS 7 或 CentOS 8 系统中从零开始搭建一个功能完备的 OpenVPN 服务器,并提供客户端连接配置示例,确保安全性与可用性。

准备工作阶段需要确保系统环境干净且具备必要的权限,登录到 CentOS 主机,执行以下命令更新系统软件包:

sudo yum update -y

接着安装 EPEL 源(如果尚未安装),因为 OpenVPN 的依赖项可能来自该源:

sudo yum install epel-release -y

然后安装 OpenVPN 和 Easy-RSA(用于证书管理):

sudo yum install openvpn easy-rsa -y

初始化证书颁发机构(CA),Easy-RSA 提供了便捷的脚本用于生成密钥和证书:

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

编辑 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

之后,为服务器生成证书请求和密钥:

./build-key-server server

同样,为客户端生成证书(例如名为 client1):

./build-key client1

完成证书生成后,复制相关文件到 OpenVPN 配置目录:

cp ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn/

现在创建主配置文件 /etc/openvpn/server.conf如下(可根据实际需求调整):

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"  # 推送内网路由
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

启用 IP 转发功能以支持隧道流量转发:

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

配置防火墙规则(使用 firewalld):

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

最后启动 OpenVPN 服务并设置开机自启:

systemctl enable openvpn@server
systemctl start openvpn@server

客户端方面,需下载 ca.crtclient1.crtclient1.key,并在客户端设备上配置 OpenVPN 客户端(如 Windows 使用 OpenVPN GUI,Linux 使用 openvpn 命令行工具),客户端配置文件应包含服务器地址、协议端口及证书路径。

通过以上步骤,你已在 CentOS 上成功部署了一个可信赖的 OpenVPN 服务,不仅满足基本远程接入需求,还可进一步结合 IPsec 或双因素认证提升安全性,作为网络工程师,理解底层原理与配置细节是保障网络安全的第一步,建议定期更新证书、监控日志并实施最小权限原则,确保整个体系持续稳定运行。

CentOS 系统下搭建 OpenVPN 服务的完整配置指南

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