WireGuard Site-to-Site 教程:两地局域网互通与异地组网配置(NAS/办公/家庭网络)
想把家里、公司或异地办公室的局域网打通?这篇教程教你使用 WireGuard 搭建 Site-to-Site VPN,实现两地内网互联。文章包含完整的 WireGuard 配置、密钥生成、IP 转发、静态路由、MTU 优化以及常见故障排查,适用于 NAS、远程办公、监控访问、Plex、Jellyfin 等多种场景,支持 Ubuntu、Debian、Rocky Linux 等系统。

前言:什么场景需要 Site-to-Site?
Site-to-Site 就是把两处物理位置的局域网打通,让它们像在同一个局域网里一样互相访问。
典型场景:
- 家里 NAS 和公司服务器互通,在家远程调公司文件不用穿透内网
- 两地办公室共享打印机、内网系统
- 父母家的监控摄像头,你在自己家就能看
- 给朋友的 Plex / Jellyfin 开个专用通道,不走公网暴露端口
WireGuard 做 Site-to-Site 比传统 IPsec / OpenVPN 简单得多——配置短、握手快、隧道稳定。
架构总览
┌─────────────────────┐ ┌─────────────────────┐
│ 站点 A(你家) │ Internet │ 站点 B(公司/父母家) │
│ │ │ │
│ 内网: 192.168.1.0/24│ ◄════► │ 内网: 192.168.2.0/24│
│ WG IP: 10.8.0.1 │ WireGuard │ WG IP: 10.8.0.2 │
│ │ 隧道 │ │
│ [路由器/树莓派] │ │ [路由器/树莓派] │
└─────────────────────┘ └─────────────────────┘
- 站点 A 内网网段:
192.168.1.0/24(你家路由器的局域网) - 站点 B 内网网段:
192.168.2.0/24(对方局域网) - VPN 内网网段:
10.8.0.0/24(WireGuard 隧道内部地址) - 每个站点有一台设备充当「网关」,运行 WireGuard 并转发对端内网的流量
第一步:两端安装 WireGuard
在两台充当网关的设备上安装 WireGuard:
# Debian / Ubuntu
sudo apt update && sudo apt install wireguard -y
# CentOS / Rocky
sudo yum install epel-release -y
sudo yum install wireguard-tools -y
两台都要装。
第二步:生成密钥对
在两台设备上分别执行:
# 生成私钥
wg genkey | sudo tee /etc/wireguard/privatekey
# 生成公钥
sudo cat /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
# 设置权限
sudo chmod 600 /etc/wireguard/privatekey
记下各自的公钥(等会要用):
# 站点 A
cat /etc/wireguard/publickey # 记作 PUBKEY_A
# 站点 B
cat /etc/wireguard/publickey # 记作 PUBKEY_B
第三步:配置站点 A(你家)
编辑站点 A 的 WireGuard 配置文件:
sudo nano /etc/wireguard/wg0.conf
写入:
[Interface]
Address = 10.8.0.1/24
PrivateKey = <站点A的私钥>
ListenPort = 51820
# 开启转发
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# 站点 B
PublicKey = <PUBKEY_B>
AllowedIPs = 10.8.0.2/32, 192.168.2.0/24
关键解释:
| 字段 | 含义 |
|---|---|
Address |
wg0 接口的本端 IP |
PostUp / PostDown |
启动/停止时自动配置 iptables 转发和 NAT,确保对端能访问本端内网 |
AllowedIPs |
10.8.0.2/32 允许对端 WG IP 通信;192.168.2.0/24 转发对端内网流量 |
eth0换成你设备实际的外网网卡名,用ip addr查看。
第四步:配置站点 B(对方)
编辑站点 B 的配置:
sudo nano /etc/wireguard/wg0.conf
写入:
[Interface]
Address = 10.8.0.2/24
PrivateKey = <站点B的私钥>
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# 站点 A
PublicKey = <PUBKEY_A>
Endpoint = <站点A的公网IP>:51820
AllowedIPs = 10.8.0.1/32, 192.168.1.0/24
PersistentKeepalive = 25
和站点 A 的区别:多了 Endpoint 和 PersistentKeepalive。
Endpoint 填对端的公网 IP。如果只有一方有公网 IP,有公网 IP 的那端不填 Endpoint,没公网 IP 的那端填对方的公网 IP。PersistentKeepalive 保持 NAT 映射不过期,NAT 后的一方建议加。
第五步:开启 IP 转发
两台设备都要执行:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
第六步:启动隧道
两台设备上分别执行:
sudo wg-quick up wg0
设为开机自启:
sudo systemctl enable wg-quick@wg0
第七步:验证连通性
在站点 A 的网关设备上:
# ping 对端 WG 地址
ping 10.8.0.2
# ping 对端内网的一台设备(比如 192.168.2.1 是对方路由器)
ping 192.168.2.1
在站点 A 的普通电脑上(不是网关),直接 ping 站点 B 的内网设备:
ping 192.168.2.x
如果 ping 不通但网关设备上能 ping 通,说明普通电脑不知道 192.168.2.0/24 该往哪走。需要加一条静态路由。
第八步:添加静态路由(让内网其他设备也能访问)
方法一:在主路由器上添加(推荐)
登录站点 A 的主路由器管理页面,添加一条静态路由:
| 参数 | 值 |
|---|---|
| 目的网络 | 192.168.2.0 |
| 子网掩码 | 255.255.255.0 |
| 网关 | 192.168.1.x(运行 WireGuard 的那台设备的局域网 IP) |
这样全家的设备都能自动访问站点 B 的内网。站点 B 的主路由器同理添加回程路由。
方法二:逐台设备手动添加(不推荐,但不需要动路由器)
在需要访问对端内网的设备上手动加路由:
# Windows(管理员 cmd)
route ADD 192.168.2.0 MASK 255.255.255.0 192.168.1.x -p
# macOS / Linux
sudo route add -net 192.168.2.0/24 192.168.1.x
性能与优化
MTU 调优
默认 MTU 1420 在大多数网络下没问题。如果发现大文件传输断断续续,降低 MTU:
在两端的 [Interface] 下各加一行:
MTU = 1380
再降到 1280 如果还不行。
查看隧道状态
sudo wg show
输出会显示每端的最新握手时间、收发流量、是否在线。如果一端的 latest handshake 超过 2 分钟,说明隧道断了。
排错速查
| 现象 | 检查项 |
|---|---|
| 网关能 ping 对端 WG IP,但 ping 不通对端内网 | IP 转发没开(sysctl net.ipv4.ip_forward);iptables FORWARD 没放行 |
| 普通电脑能 ping WG IP,ping 不通内网 | 路由器没加静态路由;或对端 iptables NAT 规则没生效 |
| 隧道间歇性断开 | NAT 端没加 PersistentKeepalive,或运营商 UDP 限流 |
| 端口不通 | 两端防火墙/安全组没放行 51820/UDP |
小结
三篇教程下来,你已经可以:
- 一键搭 WireGuard → 个人翻墙、远程办公
- 配置分流 → 国内直连 + 国外 VPN,速度和流量兼顾
- Site-to-Site 组网 → 多地内网互通,NAS、监控、服务器自由访问
WireGuard 生态还在快速发展,这三个场景足够覆盖 90% 的个人和小团队需求。


