手把手教你用脚本快速搭建安全可靠的VPN服务——从零开始的网络工程师实践指南
作为一名网络工程师,我经常需要在开发测试环境、远程办公或跨地域部署中使用虚拟专用网络(VPN)来保障数据传输的安全性与稳定性,手动配置OpenVPN、WireGuard等协议不仅耗时费力,还容易出错,为此,我整理了一套自动化脚本代码,可帮助你快速搭建一个稳定、安全且易于维护的本地或云服务器端VPN服务。
本文将详细介绍如何使用Shell脚本结合OpenVPN和Easy-RSA工具,在Linux系统(以Ubuntu 20.04为例)上一键部署一个基于证书认证的站点到站点(Site-to-Site)或点对点(Point-to-Point)的VPN服务。
确保你的服务器满足以下条件:
- 运行Ubuntu 20.04或更高版本
- 已安装wget、unzip、openssl等基础工具
- 拥有root权限或sudo权限
以下是完整的自动化脚本内容(保存为setup_vpn.sh):
set -e
echo "正在安装OpenVPN及相关依赖..."
apt update && apt install -y openvpn easy-rsa iptables-persistent
# 初始化PKI环境
make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
# 修改vars文件(可根据实际需求调整)
sed -i 's/^export KEY_COUNTRY=.*/export KEY_COUNTRY="CN"/' vars
sed -i 's/^export KEY_PROVINCE=.*/export KEY_PROVINCE="Beijing"/' vars
sed -i 's/^export KEY_CITY=.*/export KEY_CITY="Beijing"/' vars
sed -i 's/^export KEY_ORG=.*/export KEY_ORG="MyCompany"/' vars
sed -i 's/^export KEY_EMAIL=.*/export KEY_EMAIL="admin@example.com"/' vars
# 构建CA证书
./clean-all
./build-ca < /dev/null # 静默模式生成CA
# 生成服务器证书和密钥
./build-key-server server
# 生成客户端证书(可批量生成)
./build-key client1
# 生成Diffie-Hellman参数
./build-dh
# 复制证书到OpenVPN目录
cp keys/{ca.crt,server.crt,server.key,dh2048.pem} /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 dh2048.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 nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
EOF
# 启用IP转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
# 设置iptables规则(允许通过VPN流量)
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
# 保存iptables规则
netfilter-persistent save
# 启动服务并设置开机自启
systemctl enable openvpn@server
systemctl start openvpn@server
echo "✅ OpenVPN服务已成功部署!"
echo "客户端配置文件位于 /etc/openvpn/easy-rsa/keys/client1.ovpn,请将其下载至本地设备使用。"
运行脚本只需一行命令:
chmod +x setup_vpn.sh && ./setup_vpn.sh
该脚本的优势在于:
- 自动完成证书签发、配置文件生成和防火墙规则设置;
- 支持多客户端接入(只需重复执行
./build-key clientX即可); - 提供详细的日志输出和错误处理机制;
- 符合企业级安全规范(如证书验证、加密强度控制)。
生产环境中建议结合Let's Encrypt进行SSL/TLS证书更新,并定期轮换密钥,若需支持更高级功能(如路由策略、用户权限隔离),可进一步扩展此脚本。
掌握这套自动化脚本,你不仅能快速部署个人或团队使用的安全网络通道,还能在故障排查、迁移部署等场景中显著提升效率,作为网络工程师,自动化是我们的核心竞争力之一。

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






