跳到主要内容

如果你试过在家里搭服务器、开游戏房间,或者从外面访问家里的摄像头,结果明明设置都对却怎么也连不上,那么你的运营商很可能在使用运营商级 NAT,也就是 CGNAT。由于公网 IPv4 地址已经不够分,它越来越常见,固定宽带、移动数据以及一些整栋楼共享的网络都可能遇到。

对 VPN 用户来说,好消息是 CGNAT 并不像许多人担心的那样是个大障碍,VPN 应用与 CGNAT 相处得相当融洽。不那么好的消息是,有些人想和 VPN 一起做的事,比如自己搭 VPN 服务器或开放端口,会直接撞上它。本文讲的是在 CGNAT 下使用 VPN:如何确认自己是否处于 CGNAT 之后,哪些功能照常可用,哪些不能用,以及该怎么办。

用大白话讲 CGNAT

每台家用路由器本来就在做网络地址转换(NAT)。你的手机、电脑和电视各有一个私有地址(RFC 1918 规定的段,比如 192.168.1.20),流量离开家时,路由器把它们换成同一个公网地址;回复到达时,路由器记得是哪台设备发出的请求,再转交给它。

CGNAT 做的是同一件事,只是提高了一层。运营商把一个公网 IPv4 地址拿出来,让几十甚至几百个用户共用。你的路由器看到的“公网”地址,本身也是运营商分下来的、看起来像私有的地址。RFC 6598 专门为此保留了 100.64.0.0 到 100.127.255.255 这一段,所以看到以 100.64 至 100.127 开头的地址,是很强的提示。

关键在于:出站连接会在表里建立一条临时记录,回复才找得到回来的路;从外部发起的连接没有记录,也就无处可去。你的家只能被你自己发起的对话触达。

运营商为什么这样做?IPv4 总共只有约 40 亿个地址,远少于需要联网的设备数量。IPv6(RFC 8200)解决了地址短缺,但家庭网络里的普及并不均衡。在它完全普及之前,共用地址是成本最低的权宜之计。

怎样确认自己在 CGNAT 之后

大约两分钟就能查出来。

  1. 登录路由器管理页面,找到 WAN、互联网或状态页面,记下互联网一侧的 IP 地址。
  2. 在家里任意设备上,打开一个显示你公网 IP 的网页。
  3. 把两个地址对比一下。
你看到的情况 含义
两个地址完全相同 你拥有自己的公网 IPv4 地址,不在 CGNAT 之后
路由器显示的地址以 100.64 至 100.127 开头 属于 RFC 6598 共享地址段,你在 CGNAT 之后
路由器显示 10.x.x.x、172.16-31.x.x 或 192.168.x.x WAN 侧是私有地址,你在 CGNAT 之后,或前面还有一台路由器
路由器显示看似公网的地址,但与网页不一致 可能是 CGNAT 或运营商的代理,请咨询运营商

用移动数据时更难查,因为手机没有 WAN 页面。一般的做法是,除非运营商明确说明,否则把移动网络视为 CGNAT。另外,也要检查自己家里是否还有第二台路由器,比如 Mesh 系统或上游的旧路由器,这会形成外观相似的双重 NAT,但它由你控制,而不是运营商。

拥有公网 IPv6 地址,并不意味着你的 IPv4 流量就摆脱了 CGNAT。很多家庭同时有 IPv6 和 CGNAT,IPv4 一侧仍然是共享的。两者如何配合,可以看 VPN 下的 IPv4 与 IPv6。

为什么普通 VPN 应用在 CGNAT 后仍然可用

连接到服务商服务器的 VPN 应用属于出站客户端。你的设备向互联网上一个已知地址发送数据包,CGNAT 设备建立表项并转发,服务器向该表项回复,回复便送回你这里。此后,加密隧道的全部流量都经过这一个映射。

这和网页浏览依赖的机制是一样的,所以在 CGNAT 看来,VPN 隧道只是又一段较长的对话。日常用途,比如在共享网络上保护流量、在家使用或旅途使用,你不需要做任何特别的设置。

有两个小细节影响稳定性。

  • 空闲超时。 CGNAT 设备在一段时间没有数据后会忘记表项。VPN 软件通常会定期发送保活包来维持表项。如果隧道在空闲后断开,保活设置可能有帮助;如果无法修改,应用的自动重连功能会补上这个缺口。
  • UDP 与 TCP。 UDP 表项通常比 TCP 更早过期。若应用允许选择,建议保持默认,仅在客服建议时再改。

连接不稳时,可参考 提高 VPN 连接稳定性 中的检查项。如果“映射”这个概念对你比较陌生,可以先读 VPN 隧道是什么。

在 CGNAT 之后,哪些功能会失效

凡是需要别人主动向你家发起对话的事情,都会受影响。常见情形如下。

  • 在家里运行 VPN 服务器。 家里的服务器必须能接收外部连接。没有属于自己的公网地址,就没有接收的地方。这条路的利弊可以看 自建 VPN 与商用 VPN 的对比。
  • 路由器上的端口转发。 你设置的规则只作用于到达路由器的流量。如果数据包在更上一层的运营商共享设备处就被拦下,规则根本没有机会看到它们。工作原理可看 VPN 端口转发详解。
  • 靠开放端口远程访问摄像头、存储设备和智能家居。 许多此类设备改走厂商云服务,所以往往依旧可用。
  • 自建游戏服务器或点对点联机。 其他玩家无法直接连到你,部分游戏会改用中继,延迟会增加。
  • 任何需要固定地址或可被访问的服务,比如个人网站或邮件服务器。

不受影响的部分同样重要。浏览网页、观看视频、视频通话、即时通讯、云存储,以及你设备上的 VPN 应用,都能继续工作,因为这些连接都是你主动发起的。

能用与不能用一览

任务 在 CGNAT 之后 说明
浏览网页和看视频 可用 只涉及出站流量
手机或电脑上的 VPN 应用 可用 出站隧道;留意空闲超时
视频通话和通讯 可用 直连失败时可能改走中继服务器
依赖云服务的摄像头或智能设备 通常可用 设备主动连接厂商的云
在家里托管 VPN 服务器 不可用 需要入站访问
把端口转发到游戏或网站服务器 不可用 共享设备拦截入站
点对点直接传文件 常受限 取决于双方
用 IPv6 做入站访问 可能可用 前提是运营商把 IPv6 路由到你家,且防火墙允许

需要入站访问时的办法

如果你的目的只是保护流量、在家连接,上面的内容都用不着。如果确实要访问家里的某样东西,常见有四条路。

  1. 向运营商申请公网 IPv4 地址。 许多运营商接到请求后会分配独立地址,有时每月收取少量费用。说法各家不同,可以问“申请公网 IP”或“取消 CGNAT”。这是最直接的办法。
  2. 使用 IPv6。 如果运营商给你家分配了公网 IPv6 段,你可以从其他支持 IPv6 的网络通过 IPv6 访问设备。双方都需要有 IPv6,并且要有意识地配置路由器防火墙,因为如果防火墙不拦截,每台设备默认都能被访问到。
  3. 使用中继或叠加网络工具。 一些服务和开源工具通过协调服务把你的设备连起来,任何一端都不必开放端口。这一类工具在 Mesh VPN 是什么 中有说明。你仍需判断自己对协调方的信任程度。
  4. 租一台带公网地址的小服务器。 数据中心里廉价的虚拟服务器可以充当会合点。家里的设备主动连出去并保持连接,你在别处再连进来。它需要维护和更新,只有对运行服务器有把握才建议选择。

要当心那种“把端口转发一下就行”的建议:在 CGNAT 下这是错的,照做只会白白浪费一晚上。同样,对任何要求你不加认证、把服务暴露给整个互联网的工具,都要保持警惕。

CGNAT 与网站看到的地址

即使不用 VPN,CGNAT 也会影响网站看到的地址。许多用户共用同一个公网地址,网站如果发现该地址反复出现登录尝试、搜索或购买,可能会采取更严格的检查。你可能更常遇到验证码,偶尔账号登录也会要求额外确认。

开启 VPN 后,这个共享地址会换成 VPN 服务器的地址,而同一台服务器的其他用户可能也在使用它。这两种情形都不是故障,都是许多人藏在同一个地址之后,网站因此更为谨慎。如果经常遇到验证码,网站打不开或出现验证码 介绍了常见的处理办法,而 共享与独立 VPN IP 解释了共享地址为什么会这样。

不要把它当成尝试违反网站规则的理由。如果某项服务限制了你,请通过其官方渠道联系。

三个实际场景

宿舍里的学生。 小雅的宿舍给每个房间分私有地址,整栋楼共用一个公网地址。她每天在宿舍 Wi-Fi 上使用手机和笔记本的 VPN 应用,一切正常,因为那是出站连接。她想为朋友开一个小游戏服务器,却没人进得来。她弄清是 CGNAT 的缘故后,选择了中继工具或租用服务器,而不是等宿舍改网络。

用移动数据的远程工作者。 老马在乡下工作,唯一的网络是手机热点,运营商把地址分给多个用户共用。他连接公司的工作 VPN 和个人 VPN 应用都没有问题,但无法通过端口转发访问家里的监控系统。不过摄像头厂商的云服务可用,他就用这条路。

家庭实验室爱好者。 阿敏有一台小型文件服务器,想在外出时访问。运营商确认她处于 CGNAT 之后,并提出每月加收少量费用提供公网地址。她与中继工具比较后,觉得偶尔访问不值得付这笔钱,便选了中继。结论是,“最佳”办法取决于你多常需要入站访问,以及你对所涉及第三方的放心程度。

常见错误与局限

  • 把 CGNAT 的问题怪到 VPN 头上。 如果端口转发失败而你没有公网地址,任何 VPN 设置都无济于事。
  • 以为 VPN 会给你一个入站地址。 VPN 只是让网站看到另一个地址,仅此而已。有些服务商提供端口转发作为附加功能,但完全取决于服务商,不要想当然地认为你的有。
  • 不小心把设备暴露在 IPv6 上。 如果运营商启用了 IPv6,请检查路由器防火墙是否拦截了未经请求的入站连接。
  • 对外部可访问的服务使用弱密码。 开放的服务会被不断探测。请使用强且不重复的密码,并在可用时开启双重验证。
  • 把 CGNAT 当成隐私保护。 与邻居共用地址并不能对运营商隐身,运营商知道哪个用户用了哪条映射。

如果想判断哪种方案适合自己,建立简单的威胁模型是个简短的练习,能帮助你决定自己到底需不需要入站访问。

总结

CGNAT 意味着运营商让许多用户共用一个公网 IPv4 地址。VPN 应用在其后仍然可用,因为隧道由你这一侧发起。不能用的是任何需要外部主动连入的功能:家里的 VPN 服务器、端口转发、直接远程访问和部分游戏联机。对比路由器的 WAN 地址与公网 IP 就能确认 CGNAT;如果需要入站访问,可以向运营商申请公网地址、谨慎地使用 IPv6,或选择中继工具和租用服务器。

如果你只是想在自己的设备上用 VPN,可以到价格页面看看预付通行证,它和其他出站连接一样,不依赖入站访问。

常见问题

宽带运营商使用 CGNAT,还能用 VPN 应用吗?

通常可以。手机或电脑上的 VPN 应用是主动向 VPN 服务器发起出站连接,出站连接在 CGNAT 之后工作正常。失效的是那些需要外部主动连入你家的功能。

怎么判断我是不是在 CGNAT 之后?

对比路由器“互联网”或 WAN 页面显示的地址,与“查询本机 IP”网站显示的公网地址。如果两者不同,或者路由器上的地址以 100.64 至 100.127 开头,或是私有地址,基本就可以确定在 CGNAT 之后。

为什么在 CGNAT 下无法在家搭建自己的 VPN 服务器?

家里的 VPN 服务器必须能接收来自外部的连接,而 CGNAT 没有留给你一个属于自己的公网地址。在路由器上设置端口转发也没有用,因为运营商的共享设备排在你的路由器前面。

CGNAT 会让网站更频繁地出现验证码吗?

有可能。许多用户共用同一个公网地址,网站看到该地址上有大量访问,可能会视为可疑。这与是否使用 VPN 无关,不过多人共用同一个 VPN 出口地址时也会出现类似情况。

用了 VPN 就能摆脱 CGNAT 吗?

不能。VPN 改变的是网站看到的地址,并不会给你一个别人可以主动连入的地址。想让外部访问家里,需要向运营商申请公网地址、使用 IPv6,或使用中继、叠加网络类工具。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

什么是公网 IP 地址?

公网 IP 地址是你连接网站时对方看到的地址。本文解释它如何分配、与家庭网络内的私有地址有何不同,以及它能和不能透露什么。

阅读约 9 分钟

VPN 安全

VPN 与端口转发详解:用途与风险

端口转发能让外部连接访问内部网络中的某台设备。本文说明有无 VPN 时它如何运作、有哪些用途,以及开放端口可能带来的风险。

阅读约 9 分钟

选购指南

自建 VPN 与商业 VPN 服务怎么选

家里的服务器与商业服务解决的是不同的问题。对比树莓派或 NAS 上的 VPN 与现成服务,包括 CGNAT、维护和安全。

阅读约 9 分钟

VPN 基础

Mesh VPN 是什么:安全连接你自己的设备

Mesh VPN 让你自己的设备直接互联,而消费级 VPN 把流量送往服务商的服务器。本文说明两者的区别、组成部分,以及各自适用的场景。

阅读约 9 分钟

VPN 安全

IPv4 与 IPv6 对 VPN 用户意味着什么

你的设备很可能同时拥有 IPv4 和 IPv6 地址。本文说明这对 VPN 意味着什么、两者在隐私和安全上有何不同,以及如何检查自己的环境。

阅读约 10 分钟