Ubuntu Server 接入 WireGuard VPN 完整教程

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 安装即可:

sql 复制代码
sudo apt update && sudo apt install wireguard -y

验证安装成功:

css 复制代码
wg --version

💡 Ubuntu 20.04+ 无需额外安装内核模块,开箱即用。


第二步:将配置文件传输到服务器

服务端管理后台导出的配置文件已包含所有必要信息(公钥、私钥、服务端地址等),无需手动生成密钥。

方式一:用 scp 从本机上传

在你的本地电脑上执行:

ruby 复制代码
scp client.conf user@服务器IP:/home/user/

方式二:直接在服务器上粘贴内容

SSH 登录服务器后执行:

bash 复制代码
sudo nano /etc/wireguard/wg0.conf
# 粘贴配置内容,Ctrl+O 保存,Ctrl+X 退出

第三步:移动配置文件并设置权限

如果通过 scp 上传,需要将文件移动到 WireGuard 指定目录并重命名:

bash 复制代码
# 移动并重命名到 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

正常启动后会输出类似以下内容:

shell 复制代码
[#] 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

第五步:验证连接是否成功

查看握手状态

sql 复制代码
sudo wg show

看到 latest handshake 且时间在几秒内,说明连接成功:

yaml 复制代码
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 测试内网连通性

arduino 复制代码
# ping 服务端内网 IP
ping 10.0.0.1

# ping 其他已接入的节点
ping 10.0.0.x

💡 内网 IP 地址以配置文件中的 Address 字段为准。


第六步:设置开机自启

确保服务器重启后自动重新连接 VPN:

perl 复制代码
# 设置开机自启
sudo systemctl enable wg-quick@wg0

# 确认状态
sudo systemctl status wg-quick@wg0

常用管理命令速查

perl 复制代码
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   # 查看服务状态

总结

整个流程非常简洁,核心步骤只有四步:

  1. 安装 WireGuard
  2. 将配置文件放到 /etc/wireguard/wg0.conf
  3. 执行 wg-quick up wg0 启动
  4. wg show 确认握手成功

得益于服务端直接导出配置文件,整个接入过程无需手动生成密钥或编写配置,5 分钟内即可完成。

相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei3 天前
linux 系统目录详解
linux·运维·服务器