在当今远程办公和分布式团队日益普及的背景下,虚拟私人网络(VPN)已成为保障网络安全通信的重要工具,尤其对于Linux服务器环境,如CentOS这样的企业级操作系统,通过脚本自动化部署OpenVPN不仅提升效率,还能减少人为配置错误带来的风险,本文将详细介绍如何编写一个名为 centos.sh 的Shell脚本,在CentOS 7/8或RHEL 8+系统上自动完成OpenVPN服务的安装、配置与启动全过程。
确保你的CentOS主机已更新至最新状态,并具备root权限,打开终端并执行以下命令更新系统包:
yum update -y
创建脚本文件 centos.sh 并赋予执行权限:
nano centos.sh chmod +x centos.sh
脚本的核心逻辑包括四个步骤:1)安装必要软件包;2)配置OpenVPN服务;3)生成客户端证书;4)启动服务并设置开机自启。
第一步是安装OpenVPN及相关依赖项,如easy-rsa用于证书管理:
yum install -y openvpn easy-rsa
第二步,初始化PKI(公钥基础设施),通常我们使用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 ./build-dh
第三步,复制配置文件到默认目录,并进行基础配置,新建 /etc/openvpn/server.conf如下(可根据需要调整端口、协议、加密方式):
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/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"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
第四步,启用IP转发功能以支持路由流量,并配置防火墙规则允许UDP 1194端口:
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p firewall-cmd --permanent --add-port=1194/udp firewall-cmd --reload
启动OpenVPN服务并设为开机自启:
systemctl enable openvpn@server systemctl start openvpn@server
至此,整个脚本执行完毕,OpenVPN服务已在CentOS上成功部署,用户只需将生成的客户端配置文件(client1.ovpn)分发给远程用户即可连接,此自动化脚本特别适合批量部署、CI/CD集成或云平台实例初始化场景,极大提升了运维效率和一致性,建议结合Ansible或Terraform进一步实现多节点协同管理。

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






