构建VPN服务器可以让你安全地远程访问私有网络或绕过地理限制,以下是分步指南,涵盖常见方案:
选择VPN协议
-
WireGuard(推荐)
- 高性能、现代加密
- 配置简单(
/etc/wireguard/wg0.conf示例)[Interface] PrivateKey = <服务器私钥> Address = 10.0.0.1/24 ListenPort = 51820 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer] PublicKey = <客户端公钥> AllowedIPs = 10.0.0.2/32
-
OpenVPN
- 兼容性广
- 使用
easy-rsa生成证书:./easyrsa build-ca ./easyrsa gen-req server nopass ./easyrsa sign-req server server
-
IPSec/L2TP
- 适合移动设备
- 需要安装
libreswan和xl2tpd
服务器配置(以Ubuntu为例)
-
启用IP转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p
-
防火墙规则(UFW)
ufw allow 51820/udp # WireGuard端口 ufw allow 1194/udp # OpenVPN端口 ufw enable
-
客户端配置示例(WireGuard)
[Interface] PrivateKey = <客户端私钥> Address = 10.0.0.2/24 DNS = 8.8.8.8 [Peer] PublicKey = <服务器公钥> Endpoint = your.server.ip:51820 AllowedIPs = 0.0.0.0/0 # 全局流量 PersistentKeepalive = 25
高级选项
- 双栈支持:在WireGuard配置中添加IPv6地址(如
fd00::1/64) - Obfsproxy:绕过深度包检测(适用于审查严格地区)
- 负载均衡:多服务器使用
keepalived实现VIP
客户端连接
- Windows:使用WireGuard官方客户端
- Android/iOS:从应用商店安装客户端
- Linux:
sudo apt install wireguard sudo wg-quick up wg0-client.conf
验证连接
# 测试路由 traceroute 8.8.8.8
安全建议
- 定期轮换密钥(WireGuard)或证书(OpenVPN)
- 启用防火墙白名单,仅允许VPN端口
- 使用fail2ban防止暴力破解
注意:部分国家/地区对VPN有法律限制,部署前请确认合规性,对于生产环境,建议配置日志监控和自动告警系统(如Prometheus+Alertmanager)。



