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 分钟内即可完成。

相关推荐
zhongben123_2 分钟前
从零开发一个打车APP:技术选型、系统架构与成本评估指南
大数据·运维·ios·系统架构·uni-app·web app
FII工业富联科技服务7 分钟前
服务器开始按柜交付 数据中心需要具备怎样的承接能力
大数据·运维·服务器·人工智能·自动化·制造
李迟20 分钟前
Nginx容器绑定81端口报拒绝访问错误的解决
运维·nginx
嵌入式@hxydj20 分钟前
WorkBuddy中调用本地ComfyUi工作流免费生图
运维·服务器
杨云龙UP24 分钟前
生产实战:Keepalived + Nginx + MySQL 双向复制高可用架构部署与原理详解
运维·数据库·mysql·nginx·架构·keepalived·高可用架构
迪康Defender27 分钟前
PHP 高危漏洞应急分析:从风险原理到端点侧纵深防护
运维·开发语言·安全·自动化·php·运维开发·远程工作
技术小事1 小时前
Surface 装 Ubuntu 双系统
linux·运维·ubuntu
Elastic 中国社区官方博客1 小时前
Elastic 重大事件功能如何将 100 条日志样本转化为检测规则
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎
柏慧通云报餐1 小时前
政企清廉食堂数字化建设方案:基于一体化报餐平台的全链路管控落地思路
大数据·运维·人工智能·物联网·sass
方便面不加香菜1 小时前
Docker安装详解--基于Ubuntu环境
运维·docker·容器