!bin/bash

hh785003

手把手教你用脚本自动化搭建OpenVPN服务——从零到部署的完整指南

作为一名网络工程师,我经常被问到:“如何快速、稳定地搭建一个安全可靠的VPN服务?”尤其在远程办公、跨地域访问内网资源或保护隐私流量的场景中,OpenVPN是一个成熟且广泛使用的解决方案,我将为你分享一套完整的自动化脚本代码,帮助你用几行命令完成OpenVPN服务器的搭建与配置,无需手动繁琐操作,真正实现“一键部署”。

确保你的服务器环境满足以下条件:

  • 一台运行Ubuntu 20.04/22.04或Debian 10/11的Linux服务器(推荐使用云服务商如阿里云、腾讯云、AWS);
  • 公网IP地址(用于客户端连接);
  • SSH权限访问;
  • 安装了curl和unzip工具(通常默认已安装)。

我们来编写一个完整的Bash脚本(保存为setup-openvpn.sh):

# 自动化OpenVPN服务器部署脚本
# 作者:网络工程师小李
# 用途:一键安装并配置OpenVPN + Easy-RSA证书管理
echo "开始自动部署OpenVPN服务..."
# 更新系统包列表
apt update && apt upgrade -y
# 安装OpenVPN和Easy-RSA(用于证书管理)
apt install openvpn easy-rsa -y
# 创建证书目录结构(使用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
sed -i 's/^set_var EASYRSA_CA_EXPIRE.*$/set_var EASYRSA_CA_EXPIRE 3650/' vars
sed -i 's/^set_var EASYRSA_CERT_EXPIRE.*$/set_var EASYRSA_CERT_EXPIRE 3650/' vars
# 初始化PKI(证书颁发机构)
./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 /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp dh.pem /etc/openvpn/
cp 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 nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
EOF
# 启用IP转发(使客户端能访问外网)
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
# 配置iptables防火墙规则(允许UDP 1194端口并做NAT)
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
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
iptables-save > /etc/iptables/rules.v4
# 启动OpenVPN服务并设为开机自启
systemctl enable openvpn@server
systemctl start openvpn@server
echo "✅ OpenVPN服务已成功部署!"
echo "💡 客户端配置文件请使用: /etc/openvpn/client.ovpn"

这段脚本实现了从系统更新、软件安装、证书生成、配置写入到防火墙规则设置的全流程自动化,你只需在服务器上执行以下命令即可:

chmod +x setup-openvpn.sh
sudo ./setup-openvpn.sh

部署完成后,你可以通过/etc/openvpn/client.ovpn文件创建客户端配置,并导入到Windows、macOS或移动设备上的OpenVPN客户端,整个过程无需人工干预,适合批量部署或DevOps自动化流程。

这套脚本不仅节省时间,还能避免配置错误带来的安全隐患,作为网络工程师,掌握自动化脚本是提升效率的关键技能,希望这份指南对你有帮助!

!bin/bash

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速

文章版权声明:除非注明,否则均为半仙加速器-海外加速器|VPN加速器|外网加速器|梯子加速器|访问外国网站首选半仙加速器原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码