随着远程办公和网络安全意识的提升,越来越多的企业和个人用户需要通过安全、稳定的虚拟私人网络(VPN)来实现跨地域的数据访问与通信,CentOS 作为一款稳定且广泛应用于企业环境的 Linux 发行版,是搭建 OpenVPN 服务器的理想选择,本文将详细介绍如何在 CentOS 7 或 CentOS 8 上部署并配置 OpenVPN 服务器,确保您能够快速建立一个安全、可靠的私有网络连接。

第一步:准备工作
确保您的 CentOS 系统已安装最新补丁,并具备公网 IP 地址,登录系统后,执行以下命令更新系统软件包:

sudo yum update -y

第二步:安装 OpenVPN 和 Easy-RSA
OpenVPN 是开源的 SSL/TLS 协议实现,而 Easy-RSA 是用于生成证书和密钥的工具,运行以下命令安装:

sudo yum install epel-release -y
sudo yum install openvpn easy-rsa -y

第三步:配置 Easy-RSA 证书颁发机构(CA)
复制 Easy-RSA 模板到 /etc/openvpn/easy-rsa 并初始化:

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

编辑 vars 文件,设置 CA 的基本信息(如国家、组织名等),

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

然后执行以下命令生成 CA 证书:

./clean-all
./build-ca

这将创建一个名为 ca.crt 的根证书文件。

第四步:生成服务器证书和密钥
继续在 Easy-RSA 目录中执行:

./build-key-server server

按提示输入信息并确认“yes”以签署该证书,此步骤完成后,会生成 server.crtserver.key

第五步:生成 Diffie-Hellman 参数
这是 TLS 握手过程中使用的加密参数,对安全性至关重要:

./build-dh

生成的 dh2048.pem 文件将用于服务器配置。

第六步:配置 OpenVPN 服务端
复制模板配置文件:

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

编辑 /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"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

第七步:启用 IP 转发与防火墙规则
编辑 /etc/sysctl.conf,取消注释或添加:

net.ipv4.ip_forward = 1

执行:

sudo sysctl -p

配置防火墙(假设使用 firewalld):

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

第八步:启动并设置开机自启

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

第九步:客户端配置
为每个用户生成客户端证书:

./build-key client1

导出 ca.crtclient1.crtclient1.key 至客户端设备,并创建 .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 服务器,可为多个用户提供加密、匿名的远程接入能力,建议定期更新证书、监控日志、限制访问权限,以进一步增强安全性,此方案适用于中小型企业、远程开发团队或个人隐私保护需求。

在 CentOS 系统上搭建 OpenVPN 服务器,从零开始的完整指南  第1张

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