GoodSync 中文文档 下载 App

NAT 穿透与连接策略——直连优先、Forwarder 兜底

为什么需要 NAT 穿透

在理想环境下,两台设备都有公网 IP,直接建立连接即可。但现实中绝大多数设备处于 NAT 后面:

互联网
  │
┌─┴────────────────────┐
│ NAT 路由器 192.168.1.1 │  ← 家庭路由器
└─┬──────────┬─────────┘
  │          │
  ▼          ▼
设备 A      设备 B
192.168.1.2  192.168.1.3

设备 A 和 B 都只有内网 IP(192.168.x.x),从互联网上无法直接访问。要让它们互相连接,有几种传统方案:

方案实现方式问题
端口映射在 NAT 路由器上配置端口转发需要管理员权限;运营商级 NAT(CGNAT)下完全不可用
VPN两台设备加入同一个 VPN 网络需要 VPN 服务;增加延迟;配置复杂
云中转数据上传到云再下载绕路、慢、占用额外存储

GoodSync Connect 的目标就是在用户零配置的情况下,自动处理这些网络障碍。

连接建立的完整流程

当设备 A(客户端)想连接设备 B(服务器)时,GoodSync Connect 按以下步骤操作:

第一步:查询 Mediator

A → Mediator:我想连接 B(UserId: john@gmail.com, ComputerName: Office-PC)
Mediator → A:B 最后上报的公网 IP 是 1.2.3.4,端口是 50000

Mediator 本身只负责地址协调,不转发任何业务流量。

第二步:尝试直连

A → 1.2.3.4:50000:发起到 B 的直接 GSTP 连接

如果 B 也在 NAT 后面,这个直连请求到达 NAT 时会被丢弃——因为 NAT 不知道要把这个入站请求转发给内网的 B。

第三步:NAT 穿透尝试(STUN-like)

GoodSync 内置了类似 STUN 的 NAT 穿透逻辑,尝试打洞:

第四步:启用 Forwarder 转发

如果直连和 NAT 穿透都失败:

A → Forwarder:建立加密隧道
B → Forwarder:建立加密隧道
Forwarder ↔ Forwarder:在两个加密隧道之间转发加密数据

Forwarder 是 GoodSync 运营的服务器。它不读取转发的数据(数据是端到端加密的),只做字节级别转发。

连接策略的配置

GoodSync Connect 的连接策略可以在 Tools → GoodSync Connect Setup → Advanced 中配置:

选项说明推荐
Allow Direct Connection允许直连尝试开启
Allow Auto Forwarder直连失败时自动走 Forwarder开启(最省心)
Forwarder Required强制走 Forwarder,不尝试直连关闭(仅调试用)

什么时候可以关闭 Forwarder

如果你确认两端设备之间一定能直连(比如在同一个局域网内),可以关闭 Forwarder 来提高速度和降低延迟。但 GoodSync 在这种场景下本身就会优先直连,关闭 Forwarder 的收益不大,反而可能在意外情况下失去连接兜底。

连接类型的判断与显示

GoodSync 在主界面右下角或作业状态中显示当前使用的连接类型:

图标/状态含义速度
绿色连接直连(Direct)最快,延迟最低
黄色连接NAT 穿透成功(P2P)接近直连
橙色连接Forwarder 转发(Relayed)稍慢,取决于 Forwarder 位置
红色叉号连接失败不可用

Forwarder 转发的连接质量取决于转发服务器的地理位置——GoodSync 在全球多个地区部署了 Forwarder,会自动选择距离两端较近的节点。

手动指定连接方式(进阶)

在某些场景下可以手动指定连接方式:

直接 IP 地址连接

如果你知道对方设备的公网 IP(且对方配置了端口映射),可以在端点配置中直接使用 GSTP URL:

gstps://1.2.3.4:50000/files/path

这种方式跳过 Mediator 查找和 NAT 穿透,直接连接。适用于:

自定义 Mediator

GoodSync 支持企业版用户部署自己的 Mediator 服务器:

防火墙与端口

GoodSync Connect 对防火墙的要求:

组件方向默认端口说明
Mediator出站443 (HTTPS)访问 GoodSync 协调服务器
Forwarder出站443 (HTTPS)访问 Forwarder 转发服务器
GSTP 直连出站/入站动态(默认 >1024)直连使用的端口

关键:只需要出站端口 443 可达即可——几乎所有企业和家庭网络都允许出站 HTTPS 流量。入站端口不需要手动配置,NAT 穿透和 Forwarder 会处理好连接问题。

连接失败时的排查顺序

当 GoodSync Connect 显示「连接失败」时,按以下顺序排查:

  1. 两端 GoodSync 都在运行吗?(移动端需要 Server 模式启动)
  2. 两端是否在同一个 GoodSync Connect 账户下?
  3. 是否能访问 GoodSync 官网?(确认出站 HTTPS 没被拦截)
  4. 手动试试 Forwarder 模式:设置中强制要求 Forwarder,看能不能通
  5. 检查公司/学校网络的安全策略:某些网络环境会拦截 P2P 流量

大多数连接问题都可以归结为上面几条,尤其是第 4 条——强制 Forwarder 能覆盖几乎所有 NAT 和防火墙场景。