如果你玩主机游戏、跑 P2P 下载、用远程桌面回自己家、或者在 NAS 上开 BT 做种,大概率撞过同一堵墙:NAT 类型是对称型(Symmetric NAT),也叫 NAT4。后果很具体:Xbox 显示"严格 NAT"组不起语音派对,Switch 联机频繁掉线,BT 做种只能连别人、别人连不上你,远程桌面和自建 VPN 全靠第三方服务器中转。
去问运营商,答案高度统一:"我们的设备不支持全锥型 NAT。"
这句话在中文互联网上流传了至少五六年,被客服、装机师傅、甚至部分论坛"专业人士"反复复述,但从来没有被任何一份公开的设备规格书证实过。于是我搭了个实验台,把它验一遍,证实是运营商啥谎,还是确有其事!
一、实验环境
全部在一台普通 PC 上用虚拟机完成,不接触任何现网设备。整套环境只依赖 VMware 和 eNSP,如果想要最新的NE设备,见站内的 eNSP Pro 安装下载教程,从导入 ovf 到 8443 端口连不上都有对应解法。
| 角色 | 配置 |
|---|---|
| 宿主 | Windows + VMware Workstation Pro |
| 虚拟网络 | VMnet1 = 模拟公网 192.168.65.0/24;VMnet9 = 模拟私网 192.168.66.0/24 |
| 网络仿真 | 华为 eNSP |
| 公网服务器 | Rocky Linux 8.9,192.168.65.152 与 192.168.65.153 双 IP |
| NAT 设备 | 华为 USG6000V1(eNSP 镜像) |
| 客户端 | Windows 10,192.168.66.100,网关 192.168.66.12 |

被测设备的版本是整个实验最关键的一行信息:
Huawei Versatile Routing Platform Software
VRP (R) Software, Version 5.170 (USG6000V1 V500R005C10SPC300)
IPS Signature Database Version : 2018122108
V500R005C10SPC300,签名库日期 2018 年 12 月。 这是七年前的固件,而且是 eNSP 里的虚拟镜像——按常理,虚拟镜像的功能是实机的子集。请记住这个时间点,后面要用。


二、搭一个能说真话的 STUN 服务器
判断 NAT 类型必须有 RFC 3489 / RFC 5780 的 STUN 服务器。公共 STUN 服务(Google、Cloudflare)只能测出映射地址,测不出行为分类,因为它们不响应 CHANGE-REQUEST。
顺带说明,这台 NAT 设备背后承载多少并发会话,可以直接用站内的 CGNAT 会话数在线测试 量出来——会话表容量正是运营商不愿开全锥的成本项之一,两个数据放在一起看更有体感。
为什么必须用双 IP
RFC 3489 四步测试和 RFC 5780 行为发现的核心手段,是让客户端发一个带 CHANGE-REQUEST 的请求,服务器据此从另一个 IP、另一个端口的 socket 回包。能收到,说明 NAT 允许外部任意地址主动进入,即端点无关过滤(EIF)。单 IP 服务器根本构造不出这个测试——这也是全网大量"测 NAT 类型"教程无效的原因。
192.168.65.152:3478 primary / primary port
192.168.65.152:3479 primary / alternate port
192.168.65.153:3478 alternate IP / primary port
192.168.65.153:3479 alternate IP / alternate port


双 IP 同网段的陷阱:ARP flux
两张网卡挂在同一个广播域,默认配置下 Linux 会出现 ARP flux:源地址是 192.168.65.153,出口却是 ens160。备用 IP 在二层不可达,换 IP 的测试全部失效,测出来必然是对称型,而这个结论是假的。必须修:
# 抑制 ARP flux
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
# 源地址策略路由:每个 IP 固定走自己的网卡
ip route add 192.168.65.0/24 dev ens160 src 192.168.65.152 table 152
ip route add 192.168.65.0/24 dev ens33 src 192.168.65.153 table 153
ip rule add from 192.168.65.152 table 152 priority 100
ip rule add from 192.168.65.153 table 153 priority 101
这一步不做,后面所有数据都是错的。很多"我测了是对称型"的结论,正是栽在这里。
同时兼容两代协议
| 协议 | Transaction ID | Magic Cookie |
|---|---|---|
| RFC 3489(2003) | 16 字节 | 无 |
| RFC 5389 / 5780(2008+) | 12 字节 | 0x2112A442 |
服务器必须检测 data[4:8] 是否等于 magic cookie,据此决定 TID 长度和响应封装。只实现 RFC 5389 会让老工具直接判 UdpBlocked——看起来像"UDP 被封",其实是服务器不认它。
三、配置被测的 NAT 设备
基础网络
system-view
interface GigabitEthernet1/0/0
ip address 192.168.65.12 255.255.255.0
service-manage ping permit
quit
interface GigabitEthernet1/0/1
ip address 192.168.66.12 255.255.255.0
service-manage ping permit
quit
firewall zone untrust
add interface GigabitEthernet1/0/0
quit
firewall zone trust
add interface GigabitEthernet1/0/1
quit
华为防火墙的物理接口不加入安全域时逻辑状态是 down,连 ARP 都不响应。这是它与路由器的根本区别,也是新手最容易卡死的地方。



# 会话老化:四步测试是串行发请求,老化太短会误判
firewall session aging-time udp 120
四、三轮测试:从对称型到全锥型
客户端网络就绪后先确认穿越:


第一轮:出厂默认


Public end 落在 192.168.65.203,正是地址池 65.200-210 里的地址,PAT 工作正常。这就是运营商默认给你的东西。
第二轮:只打开端点无关过滤
firewall endpoint-independent filter enable
清会话后重测,结果仍是 Symmetric,Public end 从 2048 变成 2053。这里触到一个很多人理解错的技术细节:
在 APDM(地址端口相关映射,即对称型映射)下,EIF 过滤是无效的。
原因很直白:映射本身就随目标漂移。客户端访问 65.152:3478 时,NAT 分配的 65.203:2053 这条表项只对应这一个目的地址。服务器从 65.153:3479 回包时目的地址变了,报文在查 NAT 表阶段就匹配不上任何表项,根本走不到过滤判定。
所以只开 EIF,等于给一扇不存在的门装了把锁。
第三轮:把映射改成全锥模式
在地址池视图下尝试启用 Smart Fullcone,报出一条决定性的错误:
smart-fullcone exclude-dest-port 1 1
Error: Current mode can not support smart fullcone.
特性存在,只是当前模式不支持。 打开 Web 界面看同一个地址池,真相立刻浮现:NAT类型 有两个可选值——五元组NAT 与 三元组NAT。

华为的术语在这里非常清晰:
- 五元组 NAT:映射基于
源IP : 源端口 : 目的IP : 目的端口 : 协议,每换一个目标就新建映射 → APDM,对称型 - 三元组 NAT:映射基于
源IP : 源端口 : 协议,与目的无关 → EIM,端点无关映射 - 允许外部主动访问:EIF,端点无关过滤
改完之后的实际配置:

nat address-group full-nat 1
mode full-cone global
section 0 192.168.65.211 192.168.65.211
mode full-cone global 就是三元组 NAT 在 CLI 层的真实关键字,Web 界面把它藏成了下拉框。
结果


Binding test : Success
Mapping behavior : EndpointIndependent
Filtering behavior : EndpointIndependent
Public end : 192.168.65.211:4096
EIM + EIF 同时成立,RFC 5780 官方判据完全命中全锥型。 Public end 也换成了新地址池的 192.168.65.211,地址池切换确实生效。
五、三轮结果对照
| 轮次 | 映射行为 | 过滤行为 | NAT 类型 | 关键动作 |
|---|---|---|---|---|
| 基线 | APDM(五元组) | APDF | Symmetric | 出厂配置 |
| 第二轮 | APDM(五元组) | EIF | Symmetric | 只开 endpoint-independent filter |
| 第三轮 | EIM(full-cone) | EIF | Full Cone | 地址池 mode full-cone global |
这张表同时纠正一个长期误区:很多人以为"开全锥型"是一个开关,实际上是两个维度的组合,缺一不可。
- 三元组 + 无 EIF → Restricted Cone(受限锥型)
- 三元组 + EIF → Full Cone(全锥型)
- 五元组 + 任何过滤 → Symmetric(对称型)
六、现在来谈运营商的说辞
实验结果摆在这里:2018 年 12 月固件的 eNSP 虚拟镜像,不是高端型号,不是最新版本,甚至不是真机,它做到了全锥型 NAT。
"设备不支持"——这个说法经不起一次版本查询
华为 NE40E 系列从 V800R010 起就在 CGN 业务里提供 NAT 地址池与行为控制能力,官方配置指南里 nat address-group、nat-instance 是标准章节(华为官方 CGN 配置指南)。运营商的 BRAS/CGN 设备普遍是 NE40E、ME60、USG12000 级别,不是家用几十块钱的路由器。
一个 2018 年的模拟器都有的特性,说现网设备没有——要么用的是比 2018 年更旧的设备(那更该解释为什么七年不升级),要么这句话本身就是托词。设备能力是可以查证的:型号、版本、License 都在运营商自己的资产台账里。如果真是"设备不支持",完全拿得出型号和版本号。但他们从来不拿,只重复"不支持"三个字。
"全锥型有安全风险"——把两件事混为一谈
全锥型的风险边界非常清楚:只影响入方向——外部主机在知道你的公网 IP:端口后可以主动发包。
但请注意:NAT 从来不承担安全职责。做访问控制的是防火墙策略,不是 NAT 的过滤行为。 把 NAT 当安全设备本身就是架构错误。真正需要入方向管控的业务,靠的是安全策略、白名单、认证,而不是"让所有人都连不上"。
更关键的一点:运营商在企业专线、IDC 托管业务里,给的就是全锥或公网 IP。 同一家运营商,卖企业套餐时设备"支持",卖家庭宽带时就"不支持"了?设备是同一批设备。
真实原因:三笔账
端口资源。 三元组下,一个内网源端口在整个映射生命周期内独占一个公网端口,不管访问多少目标。五元组下映射按目标分裂,端口可以细粒度复用。CGN 场景里一个公网 IP 承载几千户,端口是稀缺资源。
会话表容量。 全锥需要更长的映射生命周期,NAT 会话表内存和查表性能压力更大,直接对应设备采购成本。
运维复杂度。 对称型天然抑制 P2P、BT、私搭服务这类"计划外流量",客观上降低了骨干网压力。这是收益,不是负担——只是这个收益建立在牺牲用户体验之上。
这三笔账在技术演进后已大幅缩水:IPv6 普及后端口稀缺性下降,NAT 硬件性能早已过剩。但在 IPv6 迟迟不落地的现实下,运营商选择了最省事的方案:不改,然后用话术解释为什么不改。
这不是个别现象
搜索一下就会发现这是系统性、有组织的动作,而不是"设备限制":
- 广东移动被用户发现"把全锥改成对称型"(恩山论坛)
- 广西移动"全省统一改成 NAT4 并且关闭 IPv6",连没挂 BT 种子的线路也被封
- 广州联通宽带用户报告"变成 nat4"(V2EX)
- 移动家用宽带"即将全面部署 NAT4"的讨论长期存在(NGA)
注意关键词是"改成"。 不是"一直都是",是"改"。如果设备从来就不支持,"改"这个动作从何而来?
更值得注意的是,部分地区的动作是同时关闭 IPv6。IPv6 本该是绕过 NAT 限制的正道,把它一起关掉,指向性就很明确了:不是技术做不到,是不希望用户拥有稳定的双向连通能力。
"检测到 P2P 就封"这件事
论坛里反复出现的另一个现象:没挂 BT、没跑 P2P 的线路也被改成 NAT4。这说明判定逻辑不是"检测异常流量",而是按批次、按区域统一推送配置。用户对此没有任何知情权、选择权,也没有申诉渠道——客服只会重复"设备不支持"。
一个商业服务,在用户不知情的情况下单方面降低服务质量,并且用一句无法验证的技术说辞作为解释,这在任何行业都很难被称为"服务"。
七、结论
一台 2018 年固件的华为 USG6000V 虚拟镜像,通过「地址池改 full-cone 模式 + 开启端点无关过滤」两条配置,成功实现全锥型 NAT,实测 NAT 类型从 Symmetric 变为 Full Cone。
"设备不支持"不成立。 连模拟器都支持的特性,现网 NE40E/ME60 级别设备没有理由不支持。这个说法从未被任何设备型号、版本号、官方文档证实过。所有的运营商说的不支持都是谎言,运营商就是不想担当修改的时间成本,持续投诉即可。
"全锥型有安全风险"是偷换概念。 NAT 不是安全设备,访问控制属于防火墙策略的职责范围。说实话,靠NAT类型来防范网络攻击有点好笑,你的电话号码、身份信息哪个不是手机App先泄露出去的?
真实原因是成本与管控,不是能力。 端口资源占用、会话表容量、以及对 P2P/自建服务的抑制,才是真正的动机。这些是商业选择,可以讨论,但不该用"技术上做不到"来搪塞。我有明确的家庭宽带使用用途,这就是合理的要求,而且P2P连通性对于微信电话、远程会议有明显的质量提示,流量不需要绕中转站!
八、给被 NAT4 困扰的人
先测准,再投诉。 用支持 CHANGE-REQUEST 的双 IP STUN 服务器测,确认是 Symmetric 之后,投诉时给出具体数据和测试时间。
要公网 IP,而不是要全锥。 家庭宽带申请公网 IPv4,很多地区仍然可行。有公网 IP,NAT 类型的问题直接消失。话术上用"我需要公网 IP 做远程访问/家庭监控",比讲 NAT 类型更容易被受理。申请之前先用 家庭宽带 IPv4/IPv6 公网 IP 检测 确认当前出口到底是不是公网地址,别拿着运营商内网地址去投诉。如果实在不行,比如广东联通明确不改公网IP再投诉NAT类型不达标!
IPv6 是更彻底的路。 当地 IPv6 可用且未被关闭时,直接走 IPv6,端到端可直连。反过来,如果发现 IPv6 被关了,这本身就是可以投诉的点。
换运营商是最后的投票。 不同省份、不同运营商策略差异极大,同一城市三家可能完全不同。
技术手段的边界要说清楚。 NAT 打洞、STUN/TURN 中继、异地组网能在对称型下工作,代价是中继服务器、延迟增加、带宽受限。这些是规避,不是解决。真正的解决只有两条:公网 IP,或者 IPv6。
附录:完整配置速查
STUN 服务器(Rocky Linux)
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
ip route add 192.168.65.0/24 dev ens160 src 192.168.65.152 table 152
ip route add 192.168.65.0/24 dev ens33 src 192.168.65.153 table 153
ip rule add from 192.168.65.152 table 152 priority 100
ip rule add from 192.168.65.153 table 153 priority 101
USG6000V 全锥型 NAT
# 基础网络
interface GigabitEthernet1/0/0
ip address 192.168.65.12 255.255.255.0
service-manage ping permit
quit
interface GigabitEthernet1/0/1
ip address 192.168.66.12 255.255.255.0
service-manage ping permit
quit
firewall zone untrust
add interface GigabitEthernet1/0/0
quit
firewall zone trust
add interface GigabitEthernet1/0/1
quit
# 地址池:必须是 full-cone 模式,五元组模式不支持
nat address-group full-nat 1
mode full-cone global
section 0 192.168.65.211 192.168.65.211
quit
# 源 NAT
nat-policy
rule name SNAT_OUT
source-zone trust
destination-zone untrust
source-address 192.168.66.0 mask 255.255.255.0
action source-nat address-group full-nat 1
quit
quit
# 过滤侧:端点无关过滤
firewall endpoint-independent filter enable
# 会话老化 + 清会话
firewall session aging-time udp 120
reset firewall session table
判定逻辑
| 映射(地址池模式) | 过滤(endpoint-independent filter) | 结果 |
|---|---|---|
| 五元组(APDM) | 任意 | Symmetric |
| full-cone / 三元组(EIM) | 关闭(APDF) | Restricted Cone |
| full-cone / 三元组(EIM) | 开启(EIF) | Full Cone |
参考
- Surge 知识库:NAT 类型详解
- 三元组和五元组 NAT 的地址计算公式
- NE40E CGN 配置指南(华为官方)
- RFC 3489 / RFC 5780
- 恩山论坛:广东移动是不是把全锥改成对称了
- V2EX:广州联通宽带变 nat4
- NGA:移动家用宽带即将全面部署 NAT4
如果你觉得这篇文章不错,有用的话可以点击下面的“赞赏”支持作者,你的支持是我更新的动力(饿饿吃饭)。


Comments NOTHING