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 的请求。
相关推荐
恋猫de小郭42 分钟前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
Kapaseker6 小时前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin
黄林晴6 小时前
你的 Android App 还没接 AI?Gemini API 接入全攻略
android
恋猫de小郭16 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
冬奇Lab17 小时前
PowerManagerService(上):电源状态与WakeLock管理
android·源码阅读
明君8799721 小时前
Flutter 如何给图片添加多行文字水印
前端·flutter
BoomHe1 天前
Now in Android 架构模式全面分析
android·android jetpack
四眼肥鱼1 天前
flutter 利用flutter_libserialport 实现SQ800 串口通信
前端·flutter
二流小码农1 天前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
鹏程十八少1 天前
4.Android 30分钟手写一个简单版shadow, 从零理解shadow插件化零反射插件化原理
android·前端·面试