status
date
slug
type
summary
tags
category
password
icon
你是否遇到过这样的场景:在咖啡厅想访问家里的 NAS 存取文件?或者作为开发者,需要在异地调试公司内网的服务器?WireGuard则可以成为你安全又优雅地进行异地组网方案。
WireGuard 是被直接合并入 Linux 内核的新一代 VPN 协议,它以极简的代码、极高的性能和秒连的体验著称。
本文将带你一步步在 Ubuntu 22.04 上搭建 WireGuard 服务端,配置客户端,并通过脚本实现自动化管理,最后完成多地局域网互联。

一、 服务端部署
首先,我们需要一台拥有公网 IP 的服务器(VPS)作为中转枢纽。
1. 安装与密钥生成
更新软件源并安装 WireGuard:
WireGuard 的安全机制基于公钥和私钥。
生成服务端的密钥对:
2. 服务端核心配置
我们需要规划一个虚拟网段,例如
10.8.0.0/24。服务端本身占用 10.8.0.1。创建并编辑配置文件:
注: PostUp 和 PostDown 中的命令非常关键。它们指示系统在 WireGuard 启动和关闭时,自动配置 iptables 防火墙规则,允许流量转发(NAT),从而让客户端能通过服务器上网。
3. 开启内核转发
为了让服务器能转发流量,必须开启系统的 IP 转发功能:
4. 启动服务
启动 WireGuard 并设置开机自启:
请注意,服务名称 `wg-quick@wg0` 对应配置文件 `/etc/wireguard/wg0.conf`。你也可以创建 `prod.conf` 并通过 `wg-quick@prod` 启动,从而在一台机器上管理多个 VPN 通道。
切记: 在云服务商的后台(AWS/阿里云/腾讯云等)放行你设置的UDP监听端口,如我们的例子中 UDP 端口是
51821。二、 客户端接入
现在我们需要让一台设备(比如你的笔记本)连上这个服务端。
1. 手动创建流程
如果你想理解原理,可以手动走一遍流程。
步骤 A:客户端生成密钥
步骤 B:配置客户端 (
wg0.conf或在软件中直接进行编辑)步骤 C:服务端添加客户端公钥
回到服务端执行:
2. 效率进阶:自动化脚本管理
手动配置容易出错且繁琐。这里提供两个 Shell 脚本,分别用于一键添加和一键删除节点。
脚本一:创建节点 (create_client.sh)
此脚本会自动分配 IP、生成配置,甚至可以生成手机端所需的二维码(需安装
qrencode)。请修改脚本头部和客户端的配置区以适配你的服务器。记得给脚本加上可执行权限(chmod +x xxx.sh)
脚本二:删除节点 (remove_client.sh)
此脚本会清理运行中的接口、配置文件以及本地的密钥备份,保持环境整洁。
三、 高级篇:路由转发与多地组网
这是 WireGuard 最强大的功能之一。我们不仅要连接单个设备,还要让不同地点的整个局域网互通(Site-to-Site VPN)。
例如:将办公室网络 (
192.168.2.x) 和家庭网络 (192.168.1.x) 通过公网 VPS (10.100.0.1) 连在一起。
1. 核心概念:AllowedIPs
理解
AllowedIPs 是搞定路由转发的关键:- 在客户端(发起端):它的意思是“我想去哪里?”。如果填入
192.168.1.0/24,那么访问家庭局域网的流量就会被送入 VPN 隧道。
- 在服务端:它的意思是“谁可以使用这个 IP?”以及“去往这个网段的包该给谁?”。如果你告诉服务端 Peer A 的 AllowedIPs 是
192.168.1.0/24,那么服务端收到发往192.168.1.x的数据包时,就知道要转发给 Peer A。
2. 准备工作清单
在开始之前,请确保完成以下 Checklist:
所有 WireGuard 服务器/网关均已开启
net.ipv4.ip_forward=1。服务器
wg0.conf 中配置了 iptables NAT 规则 (MASQUERADE)。确保不同地点的局域网网段不冲突(例如家里用 192.168.1.x,公司用 192.168.2.x)。
3. OpenWrt 客户端设置(作为家庭网关)
在家庭的 OpenWrt 路由器上配置 WireGuard:
- 创建接口:添加 WireGuard 接口,填入私钥和 VPS 的公钥。
- 配置 AllowedIPs:填入
10.100.0.0/24(VPN网段) 和192.168.2.0/24(你需要访问的公司网段)。
- 开启防火墙转发:
- 在防火墙设置中,将 WireGuard 接口加入一个新的区域(如
vpn_zone)。 - 允许
lan到vpn_zone的转发。 - 重要:开启 IP 动态伪装(Masquerading)。
- 系统内核转发:

4. 完整配置示例
假设网络拓扑如下:
- 中转服务器 (VPS): 虚拟IP
10.100.0.1
- 家 (Home): 虚拟IP
10.100.0.2,局域网192.168.1.0/24
- 公司 (Office): 虚拟IP
10.100.0.3,局域网192.168.2.0/24
A. 中转服务器 (VPS) 配置
B. 家 (Home) 配置
C. 公司 (Office) 配置
配置完成后,当你身在公司,Ping
192.168.1.x 即可直通家里的设备,反之亦然。希望这篇指南能帮你顺利搭建起自己的安全网络!
附wireguard常用命令:
参考资料:
- Author:雪阿宜
- URL:https://blog.xueayi.site/article/wireguard
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts







