↓ 跳过正文

Anycast IP 科普:为什么有些节点 IP 会变来变去

·1201 字·3 分钟
作者
吾便宜
Anycast IP 原理示意

插图来源:Storyset

“这个节点昨天 IP 还是 1.2.3.4,今天怎么变成 5.6.7.8 了?机场是不是偷偷换了服务器?"——先别急着问客服,你可能遇到的是 Anycast IP。

什么是 Anycast
#

正常情况:一个 IP 对应一台服务器,你连这个 IP,就是连那台机器。

Anycast:一个 IP 对应多台、分布在不同机房的服务器。你连这个 IP 时,网络会把你导向"离你最近”(路由意义上)的那台。IP 没变,变的是你实际连到的机房。

打个比方:连锁店的 400 电话,号码只有一个,打过去自动转到离你最近的门店。

为什么机场要用 Anycast
#

清单来了:

  • 就近接入:用户自动连到最优机房,延迟更低。
  • 容灾:某个机房挂了,流量自动切到其他机房,用户无感。
  • 抗攻击:DDoS 流量被分散到多个机房,不容易打死。
  • 运维简单:机场不用给每个机房配不同入口。

它带来的三个困扰
#

  1. IP 查询结果"变来变去":你查到的出口 IP 可能每次不同,因为每次被导向的机房不一样。这是正常的。
  2. 延迟测试不稳定:不同机房的延迟不同,ping 值忽高忽低不代表线路抽风。
  3. 流媒体解锁判断变难:这次解锁了,下次可能被导向另一个机房的 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 直连。