Skip to content

传输模式与协议

了解 YAT 支持的传输模式,选择最适合的方案


📋 目录


传输模式概述

什么是传输模式?

传输模式决定了数据如何在客户端和 Edge 服务器之间传输。

YAT 支持三种传输模式:

  1. Relay(中继) - 通过 Edge 服务器转发
  2. P2P(点对点) - 设备间直连
  3. WireGuard - VPN 隧道

底层协议

所有模式都使用 mTLS over TCP 作为底层传输:

  • ✅ 双向 TLS 认证
  • ✅ 加密传输
  • ✅ 防中间人攻击

中继模式(Relay)

工作原理

客户端 A ──mTLS──► Edge 服务器 ──mTLS──► 客户端 B

所有流量都经过 Edge 服务器中转。

特点

特性说明
延迟中(增加 Edge 往返时间)
带宽受 Edge 带宽限制
稳定性高(Edge 通常网络稳定)
NAT 穿透无需穿透
防火墙只需 Edge 开放端口

适用场景

  • ✅ 跨地域访问
  • ✅ 网络环境复杂
  • ✅ 需要高稳定性
  • ✅ Web 服务(HTTP/HTTPS)

配置方式

创建隧道时选择 Relay 模式:

📸 [截图位置] 传输模式选择

说明:显示 Relay/P2P/WireGuard 选项


P2P 直连模式

工作原理

客户端 A ──mTLS──► 客户端 B(直连)


      Edge(仅协调)

Edge 仅负责初始连接协调,后续流量直连。

NAT 穿透

P2P 模式使用 ICE/STUN/TURN 技术穿透 NAT:

  1. STUN - 获取公网 IP
  2. ICE - 候选地址收集
  3. TURN - 穿透失败时回退到中继

特点

特性说明
延迟低(直连,无中转)
带宽高(受两端带宽限制)
稳定性中(依赖 NAT 类型)
NAT 穿透需要穿透
防火墙可能需要配置

适用场景

  • ✅ 局域网或同地域
  • ✅ 需要低延迟(远程桌面)
  • ✅ 大文件传输
  • ✅ 音视频流

NAT 类型兼容性

NAT 类型P2P 成功率
全锥型✅ 高
受限锥型✅ 中
端口受限⚠️ 低
对称型❌ 很低

WireGuard 模式

工作原理

客户端 A ──WireGuard──► 虚拟网卡 ──转发──► 本地服务


                                 Edge(协调)

使用 WireGuard VPN 建立虚拟局域网。

特点

特性说明
延迟
带宽很高
稳定性
安全性极高(内核级加密)
配置复杂度

适用场景

  • ✅ 大文件传输
  • ✅ 数据库同步
  • ✅ 多服务访问
  • ✅ 需要虚拟局域网

配置要求

Edge 服务器

bash
# 安装 WireGuard
sudo apt install wireguard

# 加载内核模块
sudo modprobe wireguard

客户端

  • macOS: 安装 WireGuard.app
  • Windows: 安装 WireGuard
  • Linux: 安装 wireguard-tools

模式对比

性能对比

模式延迟带宽CPU 占用
Relay50-200ms10-100Mbps
P2P5-50ms100-1000Mbps
WireGuard5-30ms500-2000Mbps极低

兼容性对比

模式NAT 穿透防火墙移动网络
Relay✅ 不需要✅ 友好✅ 支持
P2P⚠️ 需要⚠️ 可能受阻⚠️ 不稳定
WireGuard⚠️ 需要⚠️ UDP 443✅ 支持

协议支持

模式HTTPTCPUDPWireGuard
Relay
P2P
WireGuard

如何选择

决策树

是否需要低延迟?
├─ 是 → 同地域?
│       ├─ 是 → P2P 模式
│       └─ 否 → WireGuard 模式
└─ 否 → 需要高稳定性?
        ├─ 是 → Relay 模式
        └─ 否 → P2P 模式

推荐配置

场景推荐模式原因
Web 服务Relay稳定、兼容性好
远程桌面P2P低延迟
数据库WireGuard高带宽、安全
文件传输WireGuard速度快
API 调试Relay简单易用
游戏服务器P2P低延迟

自动回退

YAT 支持自动回退机制:

P2P 尝试失败

回退到 Relay

保持连接

常见问题

Q: 如何切换传输模式?

目前不支持运行时切换,需要:

  1. 停止隧道
  2. 删除隧道
  3. 重新创建并选择新模式

Q: P2P 模式连接失败怎么办?

原因: NAT 穿透失败

解决:

  1. 检查 NAT 类型
  2. 尝试在相同网络下
  3. 使用 Relay 模式作为备选

Q: WireGuard 模式需要额外配置吗?

需要:

  1. 安装 WireGuard
  2. 开放 UDP 端口(默认 51820)
  3. 配置防火墙

Q: 哪种模式最安全?

WireGuard > P2P > Relay

  • WireGuard: 内核级加密,经过严格审计
  • P2P: mTLS 加密,直连无中转
  • Relay: mTLS 加密,但经过 Edge

Q: 移动网络下使用哪种模式?

推荐 RelayWireGuard

  • 移动网络 NAT 类型复杂,P2P 成功率低
  • WireGuard 对移动网络优化好

💡 最佳实践

1. 优先尝试 P2P

P2P 模式性能最好,建议优先尝试。

2. 准备回退方案

如果 P2P 失败,自动回退到 Relay。

3. 测试网络环境

bash
# 测试 NAT 类型
# 使用在线工具:https://test-ipv6.com/

# 测试带宽
speedtest-cli

# 测试延迟
ping edge.myroxy.dev

4. 监控性能

定期监控隧道性能:

  • 延迟
  • 带宽
  • 丢包率

📚 相关文档


YAT Team - 让内网穿透更简单

基于 MIT 许可证发布。