VPN 服务器部署需要根据使用场景选择合适的平台和配置。以下是主流部署方案的详细指南:
云平台部署
1. AWS(Amazon Web Services)
部署步骤:
- 创建 EC2 实例(推荐 t3.medium 或更高)
- 选择安全组,开放 UDP 1194(OpenVPN)或 51820(WireGuard)
- 分配弹性 IP(Elastic IP)
- 安装 VPN 软件
OpenVPN 安装示例:
bash# 更新系统 sudo apt update && sudo apt upgrade -y # 安装 OpenVPN sudo apt install openvpn easy-rsa -y # 生成证书和密钥 make-cadir ~/openvpn-ca cd ~/openvpn-ca source vars ./clean-all ./build-ca ./build-key-server server ./build-dh openvpn --genkey --secret keys/ta.key # 配置服务器 sudo cp keys/ca.crt keys/server.crt keys/server.key keys/ta.key keys/dh2048.pem /etc/openvpn/
WireGuard 安装示例:
bash# 添加 WireGuard 仓库 sudo apt install wireguard -y # 生成密钥对 wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey # 配置接口 sudo nano /etc/wireguard/wg0.conf
2. Google Cloud Platform (GCP)
部署步骤:
- 创建 Compute Engine 实例
- 配置防火墙规则(VPC Firewall)
- 设置静态外部 IP
- 安装和配置 VPN
防火墙配置:
bashgcloud compute firewall-rules create allow-vpn \ --allow udp:1194,tcp:1194,udp:51820 \ --source-ranges 0.0.0.0/0 \ --description "Allow VPN traffic"
3. Azure
部署步骤:
- 创建虚拟机
- 配置网络安全组(NSG)
- 设置公共 IP
- 部署 VPN 网关或手动安装
自建服务器部署
1. 硬件要求
最低配置:
- CPU:双核 2.0GHz+
- 内存:2GB RAM
- 带宽:100Mbps+
- 存储:20GB SSD
推荐配置:
- CPU:四核 3.0GHz+(支持 AES-NI)
- 内存:4GB+ RAM
- 带宽:1Gbps+
- 存储:50GB NVMe SSD
2. 操作系统选择
Linux 发行版:
- Ubuntu Server:社区支持好,文档丰富
- Debian:稳定,适合生产环境
- CentOS/Rocky Linux:企业级支持
- Alpine Linux:轻量级,资源占用少
3. 网络配置
端口转发(路由器):
shellOpenVPN: UDP 1194 → 服务器内网 IP WireGuard: UDP 51820 → 服务器内网 IP
防火墙配置(UFW):
bashsudo ufw allow 1194/udp sudo ufw allow 51820/udp sudo ufw enable
Docker 部署
1. OpenVPN Docker
使用 kylemanna/openvpn:
bash# 拉取镜像 docker pull kylemanna/openvpn # 创建配置目录 mkdir -p ~/openvpn-data cd ~/openvpn-data # 初始化配置 docker run -v $PWD:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVER.COM # 生成证书 docker run -v $PWD:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki # 启动服务器 docker run -v $PWD:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
2. WireGuard Docker
使用 linuxserver/wireguard:
bashdocker run -d \ --name=wireguard \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -e SERVERURL=your-domain.com \ -e SERVERPORT=51820 \ -e PEERS=1,2,3 \ -e PEERDNS=auto \ -v /path/to/config:/config \ -p 51820:51820/udp \ linuxserver/wireguard
性能优化
1. 内核参数调优
bash# 编辑 sysctl.conf sudo nano /etc/sysctl.conf # 添加以下配置 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_congestion_control = bbr # 应用配置 sudo sysctl -p
2. MTU 优化
bash# 测试最佳 MTU ping -c 4 -M do -s 1472 8.8.8.8 # 在 VPN 配置中设置 MTU # OpenVPN: mtu 1400 # WireGuard: MTU = 1420
3. 加密优化
bash# 使用 AES-NI 硬件加速 # OpenVPN 配置 cipher AES-256-GCM auth SHA256 ncp-ciphers AES-256-GCM:AES-128-GCM # WireGuard 默认使用 ChaCha20-Poly1305
安全加固
1. 证书管理
bash# 设置证书有效期 export CA_EXPIRE=3650 export KEY_EXPIRE=3650 # 定期轮换证书 # 每 90-180 天更新一次
2. 访问控制
bash# 限制管理访问 sudo ufw allow from YOUR_IP to any port 22 sudo ufw deny 22 # 使用密钥认证 # 禁用密码登录
3. 日志监控
bash# 配置日志轮转 sudo nano /etc/logrotate.d/openvpn
监控和维护
1. 性能监控
bash# 监控连接数 netstat -an | grep :1194 | wc -l # 监控带宽 iftop -i eth0 # 监控 CPU htop
2. 自动化脚本
bash# 备份配置 #!/bin/bash DATE=$(date +%Y%m%d) tar -czf /backup/vpn-$DATE.tar.gz /etc/openvpn
故障排除
常见问题
- 连接失败:检查防火墙和端口
- 速度慢:优化 MTU 和加密设置
- DNS 问题:配置正确的 DNS 服务器
- 证书错误:检查证书有效期和匹配
调试命令
bash# OpenVPN 日志 sudo tail -f /var/log/openvpn.log # WireGuard 状态 sudo wg show # 网络诊断 traceroute vpn-server-ip tcpdump -i eth0 port 1194
最佳实践
- 定期备份:配置文件和证书
- 更新软件:保持系统和 VPN 软件最新
- 监控性能:设置告警机制
- 文档化:记录配置和变更
- 测试恢复:定期测试灾难恢复
- 安全审计:定期进行安全评估