CentOS 7 下配置 OpenVPN 服务的完整指南,从安装到客户端连接详解
在企业网络和远程办公场景中,虚拟私人网络(VPN)是保障数据安全传输的重要手段,对于仍在使用 CentOS 7 的系统环境(尽管该版本已于2024年停止维护,但仍有大量遗留系统在运行),配置 OpenVPN 是一个成熟、稳定且开源的选择,本文将详细介绍如何在 CentOS 7 上部署 OpenVPN 服务器,并实现客户端连接,涵盖环境准备、证书生成、服务配置、防火墙设置及常见问题排查。
第一步:系统环境准备
确保你的 CentOS 7 系统已更新至最新补丁,并安装必要的开发工具和依赖包:
sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install epel-release -y sudo yum install openvpn easy-rsa -y
第二步:生成 PKI(公钥基础设施)证书
OpenVPN 使用 TLS 加密,因此需要通过 Easy-RSA 工具生成 CA 根证书、服务器证书和客户端证书,先复制默认配置文件:
cp -r /usr/share/easy-rsa/ /etc/openvpn/ cd /etc/openvpn/easy-rsa/3/
编辑 vars 文件,修改如下参数以适应你的组织信息(如国家、组织名称等):
export KEY_COUNTRY="CN" export KEY_PROVINCE="Beijing" export KEY_CITY="Beijing" export KEY_ORG="MyCompany" export KEY_EMAIL="admin@mycompany.com"
执行初始化并生成 CA 证书:
./easyrsa init-pki ./easyrsa build-ca
接下来生成服务器证书和密钥:
./easyrsa gen-req server nopass ./easyrsa sign-req server server
然后为每个客户端生成证书(示例以客户端名为 client1):
./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1
第三步:配置 OpenVPN 服务器
创建 /etc/openvpn/server.conf 文件,内容如下:
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/3/pki/ca.crt
cert /etc/openvpn/easy-rsa/3/pki/issued/server.crt
key /etc/openvpn/easy-rsa/3/pki/private/server.key
dh /etc/openvpn/easy-rsa/3/pki/dh.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 /var/log/openvpn-status.log
verb 3
第四步:启用 IP 转发与防火墙规则
在 /etc/sysctl.conf 中添加:
net.ipv4.ip_forward = 1
执行 sysctl -p 生效,然后配置 iptables:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -A INPUT -p udp --dport 1194 -j ACCEPT service iptables save
第五步:启动服务与测试
systemctl enable openvpn@server systemctl start openvpn@server
客户端可使用 OpenVPN GUI(Windows)或 Linux 命令行导入证书和配置文件(包含 ca.crt、client1.crt、client1.key),连接后即可访问内网资源。
注意事项:
- 若出现“TLS Error: TLS key negotiation failed”,请检查证书匹配性。
- 客户端需手动设置路由或使用
redirect-gateway指令自动重定向流量。 - 建议定期更新证书和密钥以增强安全性。
虽然 CentOS 7 已进入 EOL(生命周期结束),但在可控环境中仍可通过上述步骤搭建可靠 OpenVPN 服务,若条件允许,建议逐步迁移至 CentOS Stream 或 Rocky Linux 等现代发行版。




