为什么服务器在武汉,访问却还是走杭州出口?一次典型的云厂商“中心化出口”案例解析

最近遇到一个真实案例

一位来自武汉的用户,将原先部署在阿里云杭州地域的服务器迁回到武汉节点,希望本地访问延迟更低。按照云厂商的宣传,“地域越近,延迟越低”。

但实际测试却发现:

  • 武汉本地 → 武汉节点:30ms
  • 杭州 → 武汉节点:15ms

反而是距离更远的杭州访问更快?

最终与阿里云技术确认:
武汉节点的公网出口实际上仍然在杭州。

这到底是什么原理?


一、这属于典型的“云厂商中心化出口(Centralized Egress)”架构

虽然服务器物理上在武汉机房,但云厂商不一定在每个地域都部署 BGP 出口(与运营商交换路由的接口)

对云厂商来说:

  • 机房:放服务器、存储、交换机
  • 出口:与电信/联通/移动对接的 BGP 点

为了节省成本、减少维护复杂度,云厂商常采用:

多个机房 → 统一走一个或多个核心地域的 BGP 出口

阿里云内部称为:
中心集群 / 跨地域骨干互联(的统一调度出口)


二、为什么武汉访问武汉服务器,反而绕到杭州?

访问路径实际上是这样的:

1
2
武汉用户 → 武汉本地运营商 →(无本地 BGP)→ 运营商骨干 → 杭州阿里云出口 
→ 阿里云内网 → 返回武汉机房 ECS

而不是你以为的:

1
武汉用户 → 武汉阿里云机房

原因很简单:

武汉机房没有运营商的 BGP Peering(对接)

因此:

  • 运营商不知道如何把外网流量直接路由到武汉阿里云机房
  • 所有流量必须进入阿里云的 杭州出口节点
  • 然后再通过阿里云自家的骨干 回传到武汉机房

于是形成:武汉 → 杭州 → 武汉 的绕路路径。


三、阿里云杭州出口为什么快?

杭州是阿里云最成熟的区域之一,具有:

  • 三大运营商就近有多个 BGP 互联点
  • 机房规模与容量全国领先
  • 自有骨干网带宽非常大

因此:

  • 武汉访问杭州:大约 15ms
  • 武汉访问武汉(但出口在杭州):约 30ms(多绕一圈)

本质是 出口位置影响延迟,而不是机房位置


四、为什么云厂商不在武汉建出口?

1. 成本极高

建 BGP 出口需要:

  • 大量光纤、路由器、交换机
  • 机房空间与维护团队
  • 三大运营商的跨省结算与资源协调
  • 冗余部署等安全要求

只有 核心地域(北京、杭州、深圳)通常才值得投入。

武汉属于“二级 Region”,成本与流量规模无法匹配。


2. 资源复用(更常见的原因)

云厂商倾向于把出口集中到:

  • 杭州(华东核心)
  • 北京(华北核心)
  • 深圳(华南核心)

以便:

  • 集中管理 BGP
  • 集中安全设备(DDoS、审计等)
  • 集中运营成本

这就是为什么:

入口在武汉,但出口在杭州
而 CDN 恰恰相反,出口就在就近节点


五、云厂商内部网络是怎么工作的?

一个典型拓扑如下:

1
2
3
4
5
6
7
8
9
武汉机房(无公网出口)

阿里云骨干网(CEN)

杭州核心地域(具有 BGP 出口)

三大运营商公共网络

用户

主要机制:

1. 内部通信全部走云厂商自己的骨干网

  • 速度快、质量可控
  • 比公网更稳定

2. 只有核心地域才有对外 BGP 出口

从而降低运营成本,并便于调度。


六、总结:服务器在武汉,出口却在杭州,是正常现象

你的测试现象完全符合云厂商的“中心化出口”架构:

  • 服务器位置 = 武汉
  • IP 归属地 = 武汉
  • 公网出口 = 杭州(真实决定访问路径的地方)

所以远距离反而更快。


七、如何验证出口确实在杭州?

在武汉机房 ECS 上执行:

1
traceroute 8.8.8.8

通常你会看到第一跳为:

1
阿里云骨干网 → 杭州出口 → 三大运营商网

没有任何湖北本地运营商的节点。


八、如何解决延迟问题?

方案 1:换地域(更关键)

选择 郑州、长沙 等真正具备本地 BGP 出口的区域。

方案 2:换云厂商(不同厂商布局不同)

例如腾讯云在华中部分地区的出口布局更本地化。

方案 3:使用具备“最优入口与出口”的产品

如:

  • 全球加速 GA
  • Anycast EIP
  • 高防 IP(通常分布更多出口)

这些产品不依赖地域出口,能显著改善路径。