WireGuard通讯原理

一、前言

要看懂此文需要具备以下技术知识:

  • 网络包路由原理
  • NET技术原理
  • 路由表
  • Linux虚拟网络
  • 对称加密和非对称加密

这些技术不需要深入,因为时间不够,其次因为只需要浅尝辄止上面知识就可以很好的学习wg。

二、wg整体网络架构

所有wg客户和wg后端端都预先设置了不同的虚拟IP,所有wg客户端通过UDP+wg协议与wg后端连接。

这样所有wg客户端+wg后端就组成了虚拟网络。wg客户端之间可以互相通讯。wg后端类似路由器的功能,根据数据包的目标地址转发数据包。

wg服务端转发的数据包的目标地址可以是虚拟ip地址,也可以是虚拟网络的外部ip地址:

  • 虚拟IP:数据包被转发到虚拟网络里的wg客户端。
  • 外网IP:数据包转发到外网IP,并回包。

特别说明一下,图里面的TUN虚拟网卡至关重要,它可以全局拦截IP包给wg客户端,也可以转发数据包给物理网卡。

(一) 说明

本图展示了如何通过 WireGuard (WG) 建立一个 跨地域的虚拟局域网(虚拟内网) ,同时通过一台中心服务节点实现所有客户端设备的内网互联 + 访问公网服务(如 Google、YouTube、ChatGPT 等)。

(二) 主要角色说明

1. 虚拟局域网终端节点(左下和左右)

  • 代表:各个员工终端、远程设备、手机等。
  • 组成结构:
    • 应用(浏览器、微信、游戏等)
    • TUN 虚拟网卡(提供虚拟 IP)
    • WG 客户端(10.0.0.X)
    • 物理网卡和路由表(走公网发送 UDP)
  • 功能说明:
    • 每台设备通过 WG 客户端连接到 WG 后端。
    • 每台设备获得一个虚拟 IP(如 10.0.0.2 / 10.0.0.3 / ...)。
    • 不仅能与其他节点互通,还能通过后端 NAT 出口访问外网。

2. WG 后端服务节点(中间蓝色虚线框内)

  • 作用:
    • 接收各客户端发来的加密 UDP 包。
    • 解密并通过自身路由决定去向:
      • 发往其它虚拟客户端设备;
      • 或通过自身的物理出口访问公网服务器。
  • 组成结构:
    • WG 后端程序(10.0.0.1)
    • TUN 虚拟网卡(内网转发)
    • 本地路由表
    • 出口物理网卡(用于 NAT 转发 TCP/UDP)
    • 可与公司内网通信(如上方所示)

3. 公司局域网节点(图上方灰色框)

  • WG 后端服务也可以通过路由表与公司内部资源通信(如 ERP、数据库等)。
  • 内网资源通过 WG 后端转发到虚拟网络中所有客户端。

4. 目标服务器(最右)

  • 包括用户想访问的公网资源:
    • Google / YouTube / ChatGPT / GitHub / 面书(Facebook)等
  • 这些流量将通过 WG 后端的物理网卡 NAT 出口发出,表现为来自一个统一公网 IP 的请求。
相关推荐
xmdy58662 小时前
Flutter+开源鸿蒙实战|智安盾电商溯源平台Day1 项目搭建与整体方案拆解
flutter·开源·harmonyos
小书房4 小时前
Kotlin的by
android·开发语言·kotlin·委托·by
jinanwuhuaguo5 小时前
(第二十八篇)OpenClaw成本与感知的奇点——从“Token封建制”到“全民养虾”的本体论地基
android·人工智能·kotlin·拓扑学·openclaw
xxjj998a6 小时前
Laravel4.x核心特性全解析
android·mysql·laravel
JoshRen6 小时前
2026教程:在Android Termux中集成Gemini 3镜像站实现移动端文档自动处理与摘要生成(附国内免费方案)
android
诸神黄昏EX7 小时前
Android Google KEY
android
一起搞IT吧7 小时前
Android性能系列专题理论之十一:block IO问题分析思路
android·嵌入式硬件·智能手机·性能优化
小妖6668 小时前
怎么用 tauri 创建编译 android 应用程序
android·tauri
小白64028 小时前
AI辅助设计Flutter蓝牙自动连接系统
人工智能·flutter
xmdy58668 小时前
Flutter+开源鸿蒙实战|智联邻里Day6 引入GetX全局架构+升级版下拉刷新+Toast弹窗+网络状态监听
flutter·开源·harmonyos