926 字
5 分钟
校园网 IP 切换原理
很多人会注意到一个现象:在校园网里隔一段时间查一下自己的公网 IP,会发现它在悄悄变化,但自己刷网页、登微信、打游戏却完全没有感知。这篇笔记拆解这背后的原理:NAT 出口为什么频繁换 IP,以及为什么用户感觉不到。
1. 校园网为什么用 NAT
校园网通常只有一个或少数几个公网 IP,但网内可能有成千上万台设备(手机、电脑、平板)。要把这么多设备接上互联网,靠的是 NAT(网络地址转换):
- 每台设备拿到的是一个内网 IP(如
10.x.x.x、172.16.x.x、192.168.x.x),这些地址在公网上无法路由。 - 设备访问外网时,出口的 NAT 设备(路由器/网关)把源地址从内网 IP 改写成公网 IP,并记录一条”内网 IP+端口 ↔ 公网 IP+端口”的映射。
- 对端回包时,NAT 再根据映射表把目的地址翻译回内网 IP,送到对应设备。
也就是说,所有设备的流量对外都”伪装”成从那几个公网 IP 发出,对外呈现的公网 IP 是 NAT 出口决定的,而不是你的设备决定的。
2. 为什么校园网的公网 IP 会频繁切换
公网 IP 的频繁变化,通常由这几个机制叠加造成:
- DHCP 短租约:出口公网 IP 本身可能也是向运营商 DHCP 租来的,租约一过期就可能续到另一个 IP。
- 多出口负载均衡:大型校园网往往接了多条运营商线路(电信、联通、教育网等),网关根据负载把流量分到不同出口,于是你看到的公网 IP 在不同出口之间跳。
- 故障/拥塞切换:某条出口线路抖动或拥塞时,网关会自动把流量切到健康线路,公网 IP 跟着变。
所以”公网 IP 变了”在校园网里是常态,而非异常。
3. 为什么已建立的连接不受影响
关键在于:NAT 设备对已经打开的应用、已经建立的 TCP 连接(比如正在刷的网页、登着的微信、打着的游戏),会保留这个会话的映射关系:
- 哪怕公网 IP 变了,已经建立的连接不会断,应用完全不受影响,用着和平时一模一样。
- 只有当发起全新的连接(比如新开一个 SSH、重新登录某个服务、新开浏览器标签页),才会使用新的公网 IP。
4. 为什么应用本身不关心源 IP
现在的所有互联网应用(微信、浏览器、视频软件等),只需要「网络通」,完全不依赖固定的源公网 IP:
- 源 IP 变了,应用不会报错、不会掉线,用户察觉不到任何异常。
- 只有需要「源 IP 白名单」的服务(比如服务器的安全组、企业 VPN、特定后台系统),才会因为源 IP 变了而被拦截——这就是在校园网里 SSH 突然连不上服务器的一个常见根因。
5. 链路切换是毫秒级的
校园网的负载均衡、故障切换都是毫秒级完成的,几乎感觉不到断网,自然也不会意识到 IP 变了。
小结:校园网公网 IP 频繁变化是 NAT + 多出口的正常行为;已建立的连接靠 NAT 映射表维持不断;普通应用不依赖固定源 IP 所以无感;只有依赖源 IP 白名单的服务(典型如 SSH 白名单、VPN)才会被影响。