找回密码
 立即注册
搜索

[教程] wireguard异地组网实现步骤

[复制链接]
manageruser 发表于 2026-7-24 14:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
公网服务器:拥有固定公网 IP,作为 WireGuard 的中心节点(Hub),负责转发各个客户端之间的流量。
异地客户端:如家里的电脑、公司的笔记本等,作为分支节点(Spoke),它们连接到公网服务器,从而组成一个虚拟局域网(例如 10.0.0.0/24)。
防火墙/端口放行:公网服务器必须放行 WireGuard 使用的 UDP 端口(默认通常是 51820)。


公网服务器配置(以 Linux 常见系统 Ubuntu为例)
1. 安装 WireGuard
  1. sudo apt update
  2. sudo apt install wireguard
复制代码
2. 生成密钥对
  1. umask 077
  2. wg genkey | tee server_private.key | wg pubkey > server_public.key
复制代码
3. 配置服务端的 wg0.conf,创建配置文件 /etc/wireguard/wg0.conf:
  1. [Interface]
  2. Address = 10.0.0.1/24          # 虚拟局域网中的服务器 IP
  3. ListenPort = 51820             # 监听的 UDP 端口
  4. PrivateKey = <填入 server_private.key 的内容>
复制代码
4. 开启系统的 IP 转发
编辑 /etc/sysctl.conf,添加以下行后使其生效:
  1. net.ipv4.ip_forward=1
复制代码
  1. sudo sysctl -p
复制代码
5. 启动 WireGuard 服务
  1. sudo wg-quick up wg0
  2. # 设置开机自启
  3. sudo systemctl enable wg-quick@wg0
复制代码
客户端配置(以 Windows 为例)
在你的各个异地 Windows 电脑上,下载安装官方 WireGuard for Windows 客户端,
打开软件,点击 "Add Tunnel" -> "Add empty tunnel",软件会自动生成一个公私钥对,修改配置内容如下:
  1. [Interface]
  2. PrivateKey = <客户端生成的私钥>
  3. Address = 10.0.0.2/24          # 客户端在虚拟网络中的 IP(每个客户端不能重复,如 10.0.0.2, 10.0.0.3)

  4. [Peer]
  5. PublicKey = <填入服务器的 server_public.key 内容>
  6. Endpoint = <你的公网服务器IP>:51820
  7. AllowedIPs = 10.0.0.0/24       # 允许访问的虚拟网段
  8. PersistentKeepalive = 25       # 每 25 秒发送一次心跳包,防止 NAT 超时断开
复制代码
将客户端关联到服务器:
在客户端配置好后,你需要把客户端的公钥添加到公网服务器的 wg0.conf 中,以便服务器信任该客户端。
在服务器的 /etc/wireguard/wg0.conf 末尾追加:
  1. [Peer]
  2. PublicKey = <客户端的公钥>
  3. AllowedIPs = 10.0.0.2/32       # 该客户端对应的虚拟 IP
复制代码
修改完成后,在服务器上重启 WireGuard 使配置生效:
  1. sudo wg-quick down wg0
  2. sudo wg-quick up wg0
复制代码
异地组网
修改服务器上的 /etc/wireguard/wg0.conf,将需要组网客户端公钥都加进来
  1. [Interface]
  2. Address = 10.0.0.1/24
  3. ListenPort = 51820
  4. PrivateKey = 服务器C的私钥

  5. # 客户端 A
  6. [Peer]
  7. PublicKey = 客户机A的公钥
  8. AllowedIPs = 10.0.0.2/32

  9. # 客户端 B
  10. [Peer]
  11. PublicKey = 客户机B的公钥
  12. AllowedIPs = 10.0.0.3/32
复制代码
修改后重启服务器的WireGuard:
  1. sudo wg-quick down wg0 && sudo wg-quick up wg0
复制代码
通过 PowerShell 注册为系统开机服务(以管理员身份运行)
  1. wireguard /installtunnelservice "C:\Program Files\WireGuard\Data\Configurations\wg0.conf"
复制代码
删除开机服务
  1. wireguard /uninstalltunnelservice wg0
复制代码
请遵守论坛规则
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|联系我们|BTF Forum ( 蜀ICP备2023037808号-1|川公网安备51012402001300 )

GMT+8, 2026-11-2 09:57

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表