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: 移动网络下使用哪种模式? ​

推荐 Relay 或 WireGuard:

  • 移动网络 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 许可证发布。