Ubuntu Server 接入 WireGuard VPN 完整教程
将一台 Ubuntu 服务器作为客户端加入已有 WireGuard 网络
适用系统:Ubuntu 20.04 / 22.04 / 24.04 LTS
前言
WireGuard 是一款现代、简洁、高性能的 VPN 协议,相比 OpenVPN 和 IPSec 配置更简单,性能更优秀。本文介绍如何将一台 Ubuntu 服务器作为客户端,接入已搭建好的 WireGuard 服务端网络。
本教程适用场景:服务端已搭建完毕,并可导出客户端配置文件(包含公钥、私钥、服务端信息),无需手动生成密钥。
第一步:安装 WireGuard
Ubuntu 20.04 及以上版本内核已内置 WireGuard 模块,直接通过 apt 安装即可:
sudo apt update && sudo apt install wireguard -y
验证安装成功:
wg --version
💡 Ubuntu 20.04+ 无需额外安装内核模块,开箱即用。
第二步:将配置文件传输到服务器
服务端管理后台导出的配置文件已包含所有必要信息(公钥、私钥、服务端地址等),无需手动生成密钥。
方式一:用 scp 从本机上传
在你的本地电脑上执行:
scp client.conf user@服务器IP:/home/user/
方式二:直接在服务器上粘贴内容
SSH 登录服务器后执行:
sudo nano /etc/wireguard/wg0.conf
# 粘贴配置内容,Ctrl+O 保存,Ctrl+X 退出
第三步:移动配置文件并设置权限
如果通过 scp 上传,需要将文件移动到 WireGuard 指定目录并重命名:
# 移动并重命名到 WireGuard 目录
sudo mv ~/client.conf /etc/wireguard/wg0.conf
# 保护私钥安全(必须执行)
sudo chmod 600 /etc/wireguard/wg0.conf
💡 文件名
wg0.conf决定了网络接口名称为wg0,后续所有命令都依赖这个命名。如果文件叫abc.conf,启动命令就要改为wg-quick up abc。
第四步:启动 WireGuard 连接
sudo wg-quick up wg0
正常启动后会输出类似以下内容:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.x/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
第五步:验证连接是否成功
查看握手状态
sudo wg show
看到 latest handshake 且时间在几秒内,说明连接成功:
interface: wg0
public key: xxxxxxxxxxxx
private key: (hidden)
listening port: xxxxx
peer: xxxxxxxxxxxx
endpoint: 服务器IP:51820
allowed ips: 10.0.0.0/24
latest handshake: 3 seconds ago ← 有这行说明连接成功
transfer: 1.23 KiB received, 456 B sent
ping 测试内网连通性
# ping 服务端内网 IP
ping 10.0.0.1
# ping 其他已接入的节点
ping 10.0.0.x
💡 内网 IP 地址以配置文件中的
Address字段为准。
第六步:设置开机自启
确保服务器重启后自动重新连接 VPN:
# 设置开机自启
sudo systemctl enable wg-quick@wg0
# 确认状态
sudo systemctl status wg-quick@wg0
常用管理命令速查
sudo wg-quick up wg0 # 启动
sudo wg-quick down wg0 # 停止
sudo wg show # 查看连接状态
sudo systemctl restart wg-quick@wg0 # 重启
sudo systemctl status wg-quick@wg0 # 查看服务状态
总结
整个流程非常简洁,核心步骤只有四步:
- 安装 WireGuard
- 将配置文件放到
/etc/wireguard/wg0.conf - 执行
wg-quick up wg0启动 - 用
wg show确认握手成功
得益于服务端直接导出配置文件,整个接入过程无需手动生成密钥或编写配置,5 分钟内即可完成。