在当今远程办公和跨地域协作日益普及的背景下,虚拟私人网络(VPN)已成为企业与个人用户保障网络安全的重要工具,OpenVPN 是一个开源、功能强大且高度可定制的 VPN 解决方案,特别适合在 Linux 系统如 CentOS 上部署,本文将详细介绍如何在 CentOS 7 或 CentOS 8/9 上搭建一套稳定、安全的 OpenVPN 服务器,帮助你实现远程访问内网资源、加密传输数据以及构建私有网络隧道。
第一步:准备工作
确保你有一台运行 CentOS 的物理机或虚拟机,并具备 root 权限,建议使用 CentOS Stream 或 CentOS 7(EOL 但仍有支持),因为它们对 OpenVPN 的兼容性较好,首先更新系统并安装必要软件包:
sudo yum update -y sudo yum install epel-release -y sudo yum install openvpn easy-rsa -y
第二步:配置证书颁发机构(CA)
OpenVPN 使用 TLS 加密通信,因此需要先生成数字证书和密钥,Easy-RSA 工具可以帮助我们完成这一任务:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa cp vars.example vars
编辑 vars 文件,设置你的组织信息(如国家、省份、公司名等),然后执行以下命令生成 CA 根证书:
./clean-all ./build-ca
接下来生成服务器证书和密钥:
./build-key-server server
为客户端生成证书(每台设备需单独生成):
./build-key client1
最后生成 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:推荐使用 UDP 协议以提高性能dev tun:创建点对点隧道接口ca ca.crt、cert server.crt、key server.key:指向刚生成的证书dh dh.pem:指定 Diffie-Hellman 参数文件server 10.8.0.0 255.255.255.0:分配给客户端的 IP 段push "redirect-gateway def1 bypass-dhcp":强制客户端流量走 VPN 隧道push "dhcp-option DNS 8.8.8.8":指定 DNS 服务器
第四步:启动服务并配置防火墙
启用 OpenVPN 服务并设置开机自启:
systemctl enable openvpn@server systemctl start openvpn@server
若使用 firewalld,开放 UDP 1194 端口:
firewall-cmd --add-port=1194/udp --permanent firewall-cmd --reload
第五步:客户端配置与连接
将 /etc/openvpn/easy-rsa/keys/ 下的 ca.crt、client1.crt 和 client1.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
tls-auth ta.key 1
在客户端运行 OpenVPN 客户端程序即可连接服务器。
通过以上步骤,你已经成功搭建了一个基于 CentOS 的 OpenVPN 服务器,该方案支持多用户认证、灵活的路由控制和强大的加密机制,是构建私有网络的理想选择,对于企业用户,还可结合 LDAP 或数据库进行集中身份验证;对于个人用户,则可用于绕过地理限制或保护隐私,记住定期备份证书和更新软件版本,确保持续的安全性。

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






