家庭路由器、运营商级 NAT(CGNAT)会改写你的源地址与端口,使「外网主动连进来」变难。VPN 文档里的「NAT 穿越」「UDP 打洞」「中继」要回答的是:**在地址被改写之后,会话如何仍然建立或保持,以及失败时系统会不会改走另一条路径。**2026 年常见误判,是把打洞当成「加速开关」,或把 Keepalive 保活 与完整的 NAT 穿越流程当成同一个按钮。

NAT 到底改了什么

一个可独立引用的定义句:NAT(Network Address Translation)在边界设备上改写数据包的地址与端口,使内网多台设备共享有限的公网地址,同时默认阻挡未经映射的入站连接。

现象对会话的影响
出站连接通常先由内网发起,NAT 创建临时映射,回程可回来
纯入站连接若无端口映射/UPnP/静态规则,外网很难直接打到内网主机
映射超时空闲过久,中间设备回收映射,表现为「假连接」或突然不通
CGNAT运营商侧再套一层,家用路由器「公网 IP」可能仍非真正独占公网

这与 VPN 是什么 中的模型一致:加密隧道是逻辑通道;中间 NAT 仍按自己的映射表决定哪些回程包能进门。

客户端 VPN 与「打洞」:先分清拓扑

多数面向个人的客户端 VPN 是 你主动连出到远端节点:出站握手本身就会在 NAT 上留下映射,数据平面随后走这条已建立的会话。此时「能不能上网」更常取决于握手、路由、DNS 与 Kill Switch,而不是经典意义上的入站打洞。

打洞与显式 NAT 穿越更常出现在:

  • 点对点或 mesh VPN(两端都在 NAT 后,要直连);
  • 需要从外网主动访问家里 NAS/实验室的场景;
  • 部分自建方案里「尽量直连、失败再中继」的控制面。
拓扑典型问题NAT 穿越的角色
客户端 → 云节点出站可达性、空闲映射保活刷新映射为主
NAT 后 ↔ NAT 后双方都无稳定入站打洞或中继
站点到站点固定网络互通常靠固定映射/专线/集中网关

打洞、STUN 类发现与中继(概念层)

概念上,一次「尽量直连」的流程常被拆成:

  1. 发现:借助 STUN 类服务或协调服务器,获知自己在公网侧被看到的地址/端口候选;
  2. 交换:经已通的信令通道,把候选地址告诉对端;
  3. 打洞:双方几乎同时向对方候选地址发包,试图在两侧 NAT 上留下允许回程的映射;
  4. 降级:直连失败则改走 TURN 类中继或厂商中继节点。
手段在解决什么常见代价
出站映射 + 保活维持已有会话的回程路径耗电与信令,见保活文
UDP 打洞尝试 NAT 后直连受 NAT 行为影响,成功率不保证
中继保证连通多一跳延迟与中继容量
手工端口映射 / UPnP固定入站入口暴露面与路由器配置风险需自担

「打洞」不是魔法:对称型 NAT、运营商防火墙、或只允许与先前出站五元组严格匹配的回程规则,都可能让直连失败。据各客户端与自建文档,失败时的预期行为应是降级中继或明确报错,而不是静默假连接。

测试环境写法示例:2026 年 9 月,同一套点对点或 mesh 客户端,分别在「双端家庭宽带」「一端蜂窝 CGNAT」下记录是否直连成功、是否回落中继,以及直连与中继的 RTT 差。写明日期与接入类型;无法确认 NAT 类型时写「据本次实测」,不要断言具体运营商设备型号。

和 Keepalive、UDP、延迟怎么一起看

主题主要问题与 NAT 穿越的关系
Keepalive空闲后映射是否被回收保活是维持映射的常用手段
TCP vs UDP外层怎么送到节点打洞文献多讨论 UDP;TCP 行为不同
延迟与抖动路径质量中继降级常表现为 RTT 上升
Kill Switch断线窗口谁可出站与打洞成败无直接等价

读选项页时:若文案是「Persistent keepalive / 心跳」,优先按保活理解;若文案是「NAT traversal / Hole punching / Relay」,再按穿越与降级路径理解。把二者拧成同一个「网络优化」滑条,排障时容易改错旋钮。

常见误解

误解 1:开了 NAT 穿越就一定点对点直连。
穿越包含发现、尝试与降级;最终可能是中继。以实际路径与延迟为准。

误解 2:家庭路由器显示公网 IP 就等于没有 NAT 问题。
仍可能有防火墙、UPnP 关闭、或上游 CGNAT;入站与打洞要单独验证。

误解 3:NAT 穿越能替代加密或无日志。
它解决的是连通性与路径形态,不提供机密性承诺,也不回答运营方是否存日志。

误解 4:客户端 VPN 连不上都是 NAT 没打洞。
先区分:是到节点的出站握手失败,还是点对点直连失败。前者更常查端口、协议、DNS 与本地防火墙。

建议怎么纳入核对清单

把 NAT 相关现象写成可复查笔记,而不是形容词:

  1. 拓扑:你用的是「连出到节点」还是「两端 NAT 后直连/组网」;
  2. 行为:空闲后是否假连接(保活)、直连失败是否自动中继(穿越降级);
  3. 证据:日期、接入类型(家庭 / 酒店 / 蜂窝)、直连与中继的 RTT 对照。

涉及端口映射与家庭入站暴露面时,只做一般性风险提示:扩大入站可达会改变攻击面,需结合你自己的设备与用途评估;本文不提供规避执法或突破访问控制的操作指导。连通性旋钮与隐私、合规是不同层问题,分开验证更接近可复查的基线。