VPS搭建VPN教程2026:WireGuard/OpenVPN配置指南

前言

随着网络隐私和安全意识的提升,在VPS上搭建私人VPN已经成为许多技术爱好者和远程办公人士的刚需。

VPN的核心用途:
- 保护公共Wi-Fi安全:在咖啡厅、机场等公共网络下加密流量
- 远程办公访问内网:安全访问公司内网资源
- 绕过网络限制:访问被限制的网站和服务
- 隐藏真实IP:保护隐私,防止追踪

2026年,WireGuard作为新一代VPN协议,凭借其简洁的代码、高性能和安全特性,逐渐取代OpenVPN成为首选方案。本文将详细讲解在VPS上搭建WireGuard和OpenVPN的完整流程。

⚠️ 法律声明: 请确保您的使用方式符合当地法律法规。本文仅用于技术学习和合法用途(如远程办公、保护隐私)。

一、VPN协议对比与选择

1.1 WireGuard vs OpenVPN

对比维度 WireGuard OpenVPN
代码量 ~4000行 ~10万行
协议 UDP(默认) UDP/TCP
加密算法 ChaCha20、Curve25519 AES-256、RSA
连接速度 快(秒级) 慢(需握手)
性能 高(内核级) 中(用户态)
安全性 现代加密 成熟可靠
兼容性 需较新内核(5.6+) 兼容性极好
配置难度 简单 复杂
适用场景 现代系统、高性能需求 老旧系统、强兼容性需求

推荐选择:
- 优先选择WireGuard:性能更好、配置更简单、安全性更高
- 选择OpenVPN:需要兼容老旧系统(如Windows 7)、需要通过TCP 443端口绕过严格防火墙

1.2 其他VPN协议简介

协议 特点 适用场景
IPsec/L2TP 原生支持(iOS、Android) 移动设备快速连接
IKEv2 支持MOBIKE(切换网络不断线) 移动设备、频繁切换网络
Shadowsocks 轻量级、抗封锁能力强 特殊网络环境
V2Ray/Xray 功能强大、伪装能力强 对抗深度包检测(DPI)

二、WireGuard搭建详细教程

2.1 VPS环境准备

系统要求:
- 内核版本 ≥ 5.6(自带WireGuard支持)
- 若不满足条件,可安装wireguard-dkms(DKMS版本)

检查内核版本:

uname -r
# 输出示例:5.15.0-91-generic (满足要求)

# 若版本低于5.6,升级内核或安装DKMS版本

更新系统并安装依赖:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y curl wget unzip

# CentOS/RHEL
sudo yum update -y
sudo yum install -y curl wget unzip

2.2 一键安装WireGuard(推荐)

使用社区维护的一键脚本可以快速搭建:

# 方法1:使用Angristan的WireGuard脚本
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
sudo ./wireguard-install.sh

# 方法2:使用Tiangolo的脚本(支持更多功能)
curl -sSL https://get.wireguard.io | sudo bash

交互式配置过程:
1. 输入VPS公网IP(或回车自动检测)
2. 选择WireGuard监听端口(默认51820)
3. 选择DNS服务器(推荐1.1.1.1或8.8.8.8)
4. 等待安装完成

2.3 手动安装WireGuard(深入理解)

步骤1:安装WireGuard

# Ubuntu/Debian 22.04+(内核已集成)
sudo apt-get install -y wireguard

# Ubuntu/Debian 旧版本
sudo apt-get install -y wireguard wireguard-dkms wireguard-tools

# CentOS/RHEL 8+
sudo yum install -y wireguard-tools

# CentOS/RHEL 7
sudo yum install -y elrepo-release
sudo yum install -y kmod-wireguard wireguard-tools

步骤2:生成密钥对

# 创建配置目录
sudo mkdir -p /etc/wireguard
cd /etc/wireguard

# 生成服务器端密钥对
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key

# 生成客户端密钥对(为每个客户端生成独立的密钥)
wg genkey | sudo tee client1_private.key | wg pubkey | sudo tee client1_public.key

# 查看生成的密钥
sudo cat server_private.key
sudo cat server_public.key

步骤3:配置服务器端

创建/etc/wireguard/wg0.conf

[Interface]
# 服务器端私钥
PrivateKey = <server_private.key的内容>
# VPN虚拟网段(客户端将通过此IP访问)
Address = 10.0.0.1/24
# 监听端口
ListenPort = 51820
# 启用IP转发和NAT
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# 客户端1的公钥
PublicKey = <client1_public.key的内容>
# 客户端虚拟IP
AllowedIPs = 10.0.0.2/32

步骤4:启用IP转发

# 临时启用
sudo sysctl net.ipv4.ip_forward=1

# 永久启用
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

步骤5:启动WireGuard

# 启动WireGuard
sudo wg-quick up wg0

# 设置开机自启
sudo systemctl enable wg-quick@wg0

# 查看状态
sudo wg

2.4 配置客户端

Linux客户端配置(/etc/wireguard/wg0.conf):

[Interface]
PrivateKey = <client1_private.key的内容>
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <server_public.key的内容>
Endpoint = your_vps_ip:51820
AllowedIPs = 0.0.0.0/0, ::/0
# 保持连接(每120秒发送一次心跳)
PersistentKeepalive = 120

Windows/Mac客户端:
1. 下载官方WireGuard客户端:https://www.wireguard.com/install/
2. 将配置文件(如上)保存为wg0.conf
3. 导入配置文件
4. 点击"Activate"连接

Android/iOS客户端:
1. 安装WireGuard应用
2. 扫描二维码或手动输入配置
3. 连接

生成客户端配置二维码(服务器端):

# 安装qrencode
sudo apt-get install -y qrencode

# 生成二维码(在VPS上显示)
sudo qrencode -t ansiutf8 < /etc/wireguard/client1.conf

三、OpenVPN搭建教程

3.1 OpenVPN安装

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y openvpn easy-rsa

# CentOS/RHEL
sudo yum install -y epel-release
sudo yum install -y openvpn easy-rsa

3.2 使用一键脚本(推荐)

# 使用Nyr的OpenVPN脚本
wget https://git.io/vpn -O openvpn-install.sh
chmod +x openvpn-install.sh
sudo bash openvpn-install.sh

脚本会自动:
1. 检测VPS IP
2. 生成CA证书和密钥
3. 配置OpenVPN服务器
4. 生成客户端.ovpn配置文件

3.3 手动配置OpenVPN(高级)

步骤1:配置PKI(公钥基础设施)

# 复制easy-rsa到/etc/openvpn
sudo cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa

# 编辑vars文件(可选)
sudo nano /etc/openvpn/easy-rsa/vars

# 初始化PKI
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca
sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign server server
sudo ./easyrsa gen-dh
sudo openvpn --genkey --secret ta.key

步骤2:创建服务器端配置文件

/etc/openvpn/server.conf

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
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
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
log-append openvpn.log
verb 3

步骤3:启动OpenVPN

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

3.4 客户端配置

生成客户端证书:

cd /etc/openvpn/easy-rsa
sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign client client1

客户端.ovpn配置文件:

client
dev tun
proto udp
remote your_vps_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
key-direction 1
<ca>
[CA证书内容]
</ca>
<cert>
[客户端证书内容]
</cert>
<key>
[客户端私钥内容]
</key>
<tls-auth>
[ta.key内容]
</tls-auth>

四、VPN速度优化与安全加固

4.1 WireGuard速度优化

1. 修改MTU(最大传输单元)

# 查看当前MTU
sudo wg

# 修改MTU(在配置文件中添加)
# /etc/wireguard/wg0.conf
[Interface]
MTU = 1420  # 默认值,可根据网络调整(如1380)

2. 启用BBR加速

参考VPS优化网络速度教程2026:BBR加速与TCP优化启用BBR拥塞控制算法。

3. 选择靠近的服务器

WireGuard延迟对速度影响显著,选择地理位置靠近的VPS机房。

4.2 OpenVPN速度优化

1. 使用UDP协议

UDP比TCP速度快,除非网络严格限制UDP,否则优先使用UDP。

2. 调整加密算法

# 使用更快的加密算法(在server.conf和客户端配置中同时修改)
cipher AES-128-GCM  # 比AES-256-CBC更快
auth SHA256

3. 启用LZ4压缩(谨慎使用)

# 在server.conf中添加
compress lz4-v2
push "compress lz4-v2"

⚠️ 注意: 启用压缩可能降低安全性(VORACLE攻击),且对已经压缩的流量(如HTTPS)无效。

4.3 安全加固措施

1. 更改默认端口

# WireGuard:修改/etc/wireguard/wg0.conf中的ListenPort
ListenPort = 51820  # 改为其他端口,如 443 或 53

# OpenVPN:修改/etc/openvpn/server.conf中的port
port 1194  # 改为其他端口

2. 使用非标准端口混淆流量

# OpenVPN:使用TCP 443端口(伪装成HTTPS流量)
proto tcp
port 443

3. 启用防火墙限制

# 仅允许特定IP访问VPN端口
sudo ufw allow from 203.0.113.5 to any port 51820 proto udp

# 或使用geoip限制(参考防火墙教程)

4. 定期更新系统和服务

# 定期更新系统
sudo apt-get update && sudo apt-get upgrade -y

# 关注WireGuard/OpenVPN安全公告

5. 禁用SSH密码登录,使用密钥认证

参考VPS安全加固教程2026:SSH安全与防暴力破解

五、故障排查与常见问题

5.1 连接失败排查

问题1:WireGuard显示连接但无法访问网络

排查步骤:

# 1. 检查IP转发是否启用
sysctl net.ipv4.ip_forward

# 2. 检查NAT规则是否正确
sudo iptables -t nat -L -n -v

# 3. 检查AllowedIPs配置(客户端)
# 确保AllowedIPs = 0.0.0.0/0(全局流量)或特定网段

# 4. 查看WireGuard日志
sudo wg
sudo dmesg | grep wireguard

问题2:OpenVPN客户端无法连接

排查步骤:

# 1. 检查OpenVPN服务状态
sudo systemctl status openvpn@server

# 2. 查看日志
sudo tail -f /var/log/openvpn.log

# 3. 检查证书是否有效
openssl verify -CAfile ca.crt client1.crt

# 4. 测试端口是否开放
sudo netstat -tlnp | grep 1194

5.2 速度慢的优化方法

1. 测试VPS基础速度

# 安装speedtest-cli
sudo apt-get install -y speedtest-cli
speedtest-cli

2. 测试VPN速度(连接VPN后)

# 同样使用speedtest-cli
speedtest-cli

3. 调整MTU

# 逐步测试不同的MTU值(1500, 1420, 1380, 1300)
ping -M do -s 1472 8.8.8.8  # 测试最大不分段包大小

4. 更换VPS机房
选择CN2 GIA、9929等优化线路的VPS。

总结

在VPS上搭建VPN可以有效保护网络隐私和安全。本文详细讲解了WireGuard和OpenVPN两种主流方案的搭建方法。

核心要点回顾:
1. 优先选择WireGuard:性能更好、配置更简单
2. 做好安全加固:更改默认端口、限制访问IP、定期更新
3. 优化速度:启用BBR、调整MTU、选择优质线路VPS
4. 遵守法律法规:仅用于合法用途

方案选择建议:
- 个人使用、追求速度:WireGuard
- 需要兼容老旧设备:OpenVPN
- 对抗严格审查:V2Ray/Xray + Cloudflare Warp

相关文章推荐

VPN搭建涉及多个技术环节,以下文章将帮助您全面提升VPS运维能力:
- VPS优化网络速度教程2026:BBR加速与TCP优化 - 提升VPN速度的关键
- VPS安全加固教程2026:SSH安全与防暴力破解 - 保护VPN服务器安全
- VPS配置防火墙规则教程2026:iptables与firewalld详解 - 配置VPN端口转发
- VPS监控资源使用教程2026:Zabbix/Prometheus监控搭建 - 监控VPN流量和连接数
- VPS安装Docker教程2026:容器化部署完整指南 - 使用Docker快速部署VPN服务

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。