随着远程办公和跨地域网络访问需求的不断增长,构建一个稳定、安全的虚拟私人网络(VPN)服务已成为企业与个人用户的刚需,CentOS 作为一款成熟、稳定的 Linux 发行版,因其高可定制性和强大的社区支持,成为搭建 OpenVPN 服务器的理想平台,本文将详细介绍如何在 CentOS 7/8 上从零开始搭建 OpenVPN 服务,并配置客户端连接,确保数据传输加密、身份认证安全。
第一步:准备工作
确保你有一台运行 CentOS 的服务器(建议使用 CentOS Stream 或 CentOS 7/8 的最小化安装版本),并拥有 root 权限,通过 SSH 登录后,执行以下命令更新系统:
yum update -y
启用 EPEL 源(提供额外软件包):
yum install epel-release -y
第二步:安装 OpenVPN 和 Easy-RSA
OpenVPN 是开源的 SSL/TLS 协议实现,Easy-RSA 是用于管理证书和密钥的工具,安装命令如下:
yum install openvpn easy-rsa -y
第三步:配置证书颁发机构(CA)
复制 Easy-RSA 示例配置文件到 /etc/openvpn/easy-rsa 并初始化:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa cp vars.example vars
编辑 vars 文件,设置你的组织信息(如国家、省份、公司名等),然后生成 CA 证书:
./clean-all ./build-ca
此时会提示输入 CA 的 Common Name(如 "MyCA"),确认后即可生成 ca.crt 和 ca.key。
第四步:生成服务器证书和密钥
继续执行:
./build-key-server server
按提示输入服务器名称(默认为 "server"),选择是否签名,确认后生成服务器证书和私钥,接下来生成 Diffie-Hellman 参数(用于密钥交换):
./build-dh
第五步:配置 OpenVPN 服务端
复制示例配置文件到 /etc/openvpn/server.conf,并进行关键修改:
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
编辑 /etc/openvpn/server.conf,主要修改项包括:
port 1194(默认端口)proto udp(UDP 更适合实时通信)dev tun(使用 TUN 设备)ca ca.crtcert server.crtkey server.keydh dh.pemserver 10.8.0.0 255.255.255.0(分配给客户端的 IP 段)push "redirect-gateway def1 bypass-dhcp"(强制客户端流量走隧道)push "dhcp-option DNS 8.8.8.8"(指定 DNS)
第六步:启用 IP 转发与防火墙规则
编辑 /etc/sysctl.conf,取消注释或添加:
net.ipv4.ip_forward = 1
应用更改:
sysctl -p
配置防火墙(若使用 firewalld):
firewall-cmd --permanent --add-port=1194/udp firewall-cmd --permanent --add-forward-port=port=1194:proto=udp:toaddr=10.8.0.1 firewall-cmd --reload
第七步:启动 OpenVPN 服务
systemctl enable openvpn@server systemctl start openvpn@server
第八步:客户端配置
在客户端(Windows/macOS/Linux)上,创建 .ovpn 配置文件,内容包含服务器 IP、CA 证书、客户端证书和密钥,客户端需安装 OpenVPN 客户端软件(如 OpenVPN GUI for Windows)。
至此,一个基于 CentOS 的 OpenVPN 服务器已成功部署,支持多用户安全接入,适用于远程办公、分支机构互联或隐私保护场景,后续可根据需求扩展双因素认证(如使用 Google Authenticator)、日志审计或集成 LDAP 认证,进一步提升安全性与可管理性。

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






