手把手教你用CentOS搭建OpenVPN服务:一键脚本实现安全远程访问
在当前远程办公和跨地域协作日益普及的背景下,企业或个人用户对安全、稳定的虚拟专用网络(VPN)需求激增,CentOS作为一款稳定、可靠的Linux发行版,常被用于服务器部署,而OpenVPN是一款开源且功能强大的SSL/TLS协议实现,支持多种认证方式和加密算法,非常适合在CentOS上搭建企业级或个人级的VPN服务。
本文将详细介绍如何通过一个自动化脚本,在CentOS 7/8系统中快速搭建OpenVPN服务,并配置客户端连接,全程无需复杂手动操作,适合新手入门和运维人员快速部署。
确保你的CentOS服务器满足以下条件:
- 公网IP地址(必须)
- CentOS 7或8操作系统(推荐使用最小化安装)
- root权限或sudo权限
- 网络防火墙开放UDP端口1194(OpenVPN默认端口)
我们编写一个自动化脚本(以bash为例),该脚本将完成以下任务:
- 更新系统软件包;
- 安装EPEL源和OpenVPN依赖;
- 下载并运行OpenVPN Easy-RSA脚本生成证书;
- 配置OpenVPN服务文件;
- 启动服务并设置开机自启;
- 生成客户端配置文件(供Windows、macOS、Android等设备使用);
以下是核心脚本内容(保存为setup-openvpn.sh):
echo "正在更新系统..." yum update -y echo "安装必要工具..." yum install -y epel-release wget unzip iptables-services net-tools echo "安装OpenVPN..." yum install -y openvpn easy-rsa # 设置Easy-RSA目录 make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa # 编辑vars文件(可选,若需自定义CA信息) sed -i 's/^set_var EASYRSA_KEY_SIZE.*/set_var EASYRSA_KEY_SIZE 2048/' vars # 构建CA证书 ./easyrsa init-pki ./easyrsa build-ca nopass # 生成服务器证书和密钥 ./easyrsa gen-req server nopass ./easyrsa sign-req server server # 生成Diffie-Hellman参数 ./easyrsa gen-dh # 生成TLS密钥(用于增强安全性) openvpn --genkey --secret ta.key # 复制证书到OpenVPN配置目录 cp pki/ca.crt pki/private/server.key pki/issued/server.crt pki/dh.pem ta.key /etc/openvpn/ # 创建OpenVPN服务配置文件 cat > /etc/openvpn/server.conf <<EOF port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh 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 tls-auth ta.key 0 cipher AES-256-CBC auth SHA256 user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 EOF # 启用IP转发 echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p # 配置iptables规则(允许流量转发) iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE service iptables save # 启动OpenVPN服务 systemctl enable openvpn@server systemctl start openvpn@server echo "✅ OpenVPN服务已成功启动!" echo "👉 请使用以下命令生成客户端配置文件:" echo "cd /etc/openvpn/easy-rsa && ./easyrsa gen-req client1 nopass" echo "然后执行 ./easyrsa sign-req client client1" echo "最后将client1.crt、client1.key、ca.crt、ta.key打包成.ovpn文件即可使用!"
执行脚本只需三步:
- 将脚本保存为
setup-openvpn.sh; - 赋予执行权限:
chmod +x setup-openvpn.sh; - 运行:
./setup-openvpn.sh
完成后,你将获得一个完整的OpenVPN服务器,支持多设备连接,如需进一步优化(如NAT穿透、域名绑定、日志监控),可结合fail2ban、nginx反向代理等工具扩展。
此脚本极大简化了OpenVPN部署流程,是网络工程师日常运维的实用利器,建议在生产环境中配合证书管理、日志审计和定期更新策略使用,确保长期安全稳定运行。

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

