插图来源:Storyset
“这个节点昨天 IP 还是 1.2.3.4,今天怎么变成 5.6.7.8 了?机场是不是偷偷换了服务器?"——先别急着问客服,你可能遇到的是 Anycast IP。
什么是 Anycast#
正常情况:一个 IP 对应一台服务器,你连这个 IP,就是连那台机器。
Anycast:一个 IP 对应多台、分布在不同机房的服务器。你连这个 IP 时,网络会把你导向"离你最近”(路由意义上)的那台。IP 没变,变的是你实际连到的机房。
打个比方:连锁店的 400 电话,号码只有一个,打过去自动转到离你最近的门店。
为什么机场要用 Anycast#
清单来了:
- 就近接入:用户自动连到最优机房,延迟更低。
- 容灾:某个机房挂了,流量自动切到其他机房,用户无感。
- 抗攻击:DDoS 流量被分散到多个机房,不容易打死。
- 运维简单:机场不用给每个机房配不同入口。
它带来的三个困扰#
- IP 查询结果"变来变去":你查到的出口 IP 可能每次不同,因为每次被导向的机房不一样。这是正常的。
- 延迟测试不稳定:不同机房的延迟不同,ping 值忽高忽低不代表线路抽风。
- 流媒体解锁判断变难:这次解锁了,下次可能被导向另一个机房的 IP,解锁状态跟着变。给流媒体固定非 Anycast 的普通节点更省心。
怎么判断是不是 Anycast#
- 不同时间、不同网络查出口 IP,结果不一样。
- traceroute 的路径时而不同。
- 直接问机场客服,最省事。
对测速的影响#
用 Anycast 节点测速时要注意:每次测可能打到不同机房,结果波动大。想得到靠谱的结论,同一节点多测几次,看"大多数时候"的表现,而不是单次最好/最差成绩。测速的正确姿势见 节点测速指南。
一句话#
Anycast 不是机场"偷换服务器",是一种正常的网络技术。IP 类型的基础见 家宽 IP、商宽 IP、机房 IP 的区别,原生 IP 的概念见 落地 IP 与原生 IP,IP 出问题的排查见 IP 被墙怎么办。
Anycast 和 CDN 是什么关系#
CDN 就是 Anycast 最大的应用场景。你访问一个用了 CDN 的网站,解析到的 IP 在全球多个机房同时广播,网络自动把你导向最近的边缘节点——和机场 Anycast 节点的原理一模一样。理解了这个,就理解了为什么"同一个域名在不同地方 ping 值差很多"。
选节点时要不要避开 Anycast#
分场景,看清单:
- 看流媒体、抢票、玩账号:优先选非 Anycast 的固定 IP 节点。出口 IP 稳定,解锁状态和账号风控都更可预期。
- 日常浏览、刷视频、打游戏:Anycast 完全可用,就近接入延迟更低,机房挂了自动切换反而更稳。
- 做延迟对比测试:避开 Anycast,或者同一节点连测多次取中位数,单次成绩没有意义。
一个常见误解:IP 属地 = 机房位置#
IP 库标注的属地是"这个 IP 段注册在哪里",Anycast 下你实际连到的机房可能在另一个城市甚至另一个国家。所以"IP 显示洛杉矶但延迟像连了东京"并不矛盾——延迟是物理距离决定的,属地标注只是注册信息。IPv6 节点的差异看 IPv6 节点科普,中转和直连节点的区别看 中转 vs 直连。