﻿---
title: Blog & OSS境内外CDN分流配置记录
date: 2025-09-08
excerpt: 备案通过，简单记录下国内外CDN分流配置过程
tags:
  - Web
  - Network
  - Internet
  - HTTPS
  - CDN
  - Blog
  - Performance
cover: https://assets.vluv.space/cdn.webp
updated: 2026-05-08 22:34:07
---

<script data-swup-reload-script type="module" src="/js/components/tab.js"></script>

## 使用工具

| 工具                                               | 核心作用                              | 同类产品                                | 收费 |
| -------------------------------------------------- | ------------------------------------- | --------------------------------------- | ---- |
| [DNSPod](https://www.dnspod.com)                   | 境内外线路智能解析                    | 阿里云 DNS                              | Free |
| [Bitiful](https://www.bitiful.com)                 | 境内 CDN 加速<br>（**需备案**）       | 阿里云 CDN，腾讯云 CDN，七牛云 CDN      | Paid |
| [EdgeOne](https://edgeone.ai)                      | 境外 CDN 加速                         | Cloudflare CDN，Vercel CDN              | Free |
| [Cloudflare Pages](https://pages.cloudflare.com)   | 静态源站托管<br>境外 CDN 节点回源<br> | Vercel，EdgeOne，GithubPage，个人服务器 | Free |
| [EdgeOne Pages](https://edgeone.ai/products/pages) | 静态源站托管<br>境内 CDN 节点回源<br> | 境内服务器                              | Free |

## 原理解析

原理上就是通过 DNS CName 分流，国内用户走国内 CDN，国外用户走国外 CDN。

![CDN分流](https://assets.vluv.space/cdn分流.avif)

大概流程如下：

1. **用户请求：**  用户在浏览器输入  `vluv.space`，操作系统向*Local DNS Server*发起域名解析请求（浏览器和 OS 也会缓存 DNS 解析结果，这里略过）
2. **递归查询：**  如果*Local DNS Server*没有缓存，它会从*Root DNS Server*开始，一路查询到  `.space`  的 _TLD (Top-Level-Domain) DNS Server_ ，最终找到负责  `vluv.space`  域名的*Authoritative DNS Server*
3. **根据线路返回不同的 CNAME 记录**: *Authoritative DNS Server*作为整个查询链条的终点，拥有 `vluv.space` 这个域名的所有 DNS 记录（e.g. A、CNAME、TXT Records...）；这里即腾讯云 DNSPod 服务器。
   腾讯云提供的智能解析会判断用户的来路并将智能化处理后的 IP 返回给用户，详见 [DNS 智能解析线路说明 - DNSPod 服务与支持](https://docs.dnspod.cn/dns/dns-record-line/#%E4%BA%91%E5%8E%82%E5%95%86)
   - **境内线路**  如果判断为国内，权威 DNS 服务器就返回一个指向**国内 CDN**的 CNAME 记录，例如  `vluv.space.s4cdn.dogecast.com.`
   - **境外访客**  如果判断为国外，则返回一个指向**国外 CDN**的 CNAME 记录，例如  `vluv.space.eo.dnse4.com.`

![DNS](https://assets.vluv.space/UESTC/Network/Ch6-2ApplicationLayer/Ch6-2ApplicationLayer-2024-03-28-14-18-29.webp)

**CDN 最终解析**: *Local DNS Server*获取到这个 CNAME 记录后，再对 CNAME 记录中提供的那个新域名，重新发起一轮**完整的 DNS 解析**。最终由 CDN 服务商的*Authoritative DNS Server*系统接管解析，根据用户的位置、节点负载等情况，返回一个最合适的边缘节点 IP 地址。用户的浏览器最终拿到这个 IP 地址，与 CDN 边缘节点建立连接，高速获取网站内容。

| 检测点          | 响应 IP         | IP 位置             | 响应时间 |
| --------------- | --------------- | ------------------- | -------- |
| 电信   广东东莞 | `121.14.153.91` | 中国/广东/东莞/电信 | <1ms     |
| 电信   山西太原 | `1.71.145.167`  | 中国/山西/太原/电信 | 1ms      |
| 电信   福建龙岩 | `106.126.9.144` | 中国/福建/泉州/电信 | 5ms      |
| 电信   重庆     | `124.115.13.87` | 中国/陕西/西安/电信 | 18ms     |
| 电信   江苏苏州 | `58.216.60.143` | 中国/江苏/常州/电信 | 4ms      |
| 韩国首尔        | `43.159.99.18`  | Anycast/腾讯云      | 32ms     |
| 英国伦敦        | `43.159.99.18`  | Anycast/腾讯云      | 18ms     |

> [!NOTE]- Anycast, TTL
>
> - 可以看到境外的响应 ip 均为 `43.159.99.18`，这里其实是不同地理位置的多个服务器共享了同一个 IP 地址，详见[什么是 Anycast？| Anycast 如何工作？ | Cloudflare](https://www.cloudflare.com/zh-cn/learning/cdn/glossary/anycast-network/)
> - 首次访问一个冷门网站，一般就会经过上面那一套冗长的 DNS 查询，如果每次都这么查询一圈，延迟会挺高的。DNS 缓存可以有效地解决这个问题，在**Authoritative DNS Server**配置的 TTL (Time To Live) 字段即缓存的过期时间

检验是否分流成功，可以运行 `{shell} curl -I <your-domain>`，查看返回的响应头，以EdgeOne为例，在响应头中如果包含 `eo-cache-status` 字段，说明请求是走的 EdgeOne CDN 节点。详见 [EdgeOne 默认 HTTP 响应头文档](https://cloud.tencent.com/document/product/1552/87655)

## Steps

### 境内外 CDN 配置

按照 CDN 供应商的要求，接入 CDN；以 EdgeOne 为例，可参考 [EdgeOne 全解析: 快速接入安全加速 - Tencent EdgeOne](https://edgeone.ai/zh/document/54208)，按照步骤操作即可。基本是以下几个步骤：

1. 添加站点
2. 选择服务区域及套餐
3. 选择加速区域和接入模式（通常是 CNAME 接入）

<x-tabs>

<x-tab title="Bitiful" active>

![cdn](https://assets.vluv.space/bitiful_source_site.avif)

</x-tab>

<x-tab title="EdgeOne">

![cdn](https://assets.vluv.space/edgeone-cdn-source.avif)

</x-tab>

</x-tabs>

> [!warning] 关于源站配置
>
> EdgeOne: 建议您的源站根据加速区域配置相同地域的源站，例如，加速区域为中国大陆可用区，请配置为境内源站回源，如果源站位于全球可用区（不含中国大陆），由于回源存在跨境访问，将无法为您保障回源效果。
>
> - 境内CDN的源站建议使用境内服务器，可使用EdgeOne国内版 (中国大陆可用区)；
> - 境外CDN可选的源站较多，可使用Cloudflare Pages, EdgeOne Pages, Vercel, Github Page等

### DNS Pod CName 分流

DNSPod 支持根据用户线路返回对应的 CNAME，从而实现国内用户走 bitiful，境外用户走 edgeone。​

配置步骤：​

1. 登录 DNSPod 管理控制台，选择对应的域名，进入"记录管理"页面 ​
2. 参考下表，添加境内、境外两种类型的 CNAME 解析记录 ​

| 主机记录 | 记录类型 | 线路类型 | 记录值                           | TTL | 备注     |
| -------- | -------- | -------- | -------------------------------- | --- | -------- |
| `@`      | CNAME    | 境内     | `vluv.space.s4cdn.dogecast.com.` | 600 | 境内 CDN |
| `@`      | CNAME    | 境外     | `vluv.space.eo.dnse4.com.`       | 600 | 全球 CDN |

类似地，图床域名也进行相同配置：

| 主机记录 | 记录类型 | 线路类型 | 记录值                                  | TTL | 备注     |
| -------- | -------- | -------- | --------------------------------------- | --- | -------- |
| `assets` | CNAME    | 境内     | `assets.vluv.space.s4cdn.dogecast.com.` | 600 | 境内 CDN |
| `assets` | CNAME    | 境外     | `assets.vluv.space.eo.dnse4.com.`       | 600 | 全球 CDN |

## 优化效果

测试网站: [ITDOG](https://www.itdog.cn/ping/vluv.space)

>[!TLDR]- Domestic 境内测速结果
>
> | 区域/运营商 | 最快          | 最慢           | 平均   |
> | ------ | ----------- | ------------ | ---- |
> | 全部节点   | 上海电信 <1ms   | 山西太原移动 191ms | 12ms |
> | 中国电信   | 上海电信 <1ms   | 云南玉溪电信 144ms | 12ms |
> | 中国联通   | 青海西宁联通 <1ms | 云南玉溪联通 47ms  | 10ms |
> | 中国移动   | 湖南长沙移动 <1ms | 山西太原移动 191ms | 13ms |
> | 华东地区   | 上海电信 <1ms   | 浙江舟山联通 21ms  | 7ms  |
> | 华南地区   | 广东东莞电信 <1ms | 广东深圳移动 27ms  | 11ms |
> | 华中地区   | 湖南长沙移动 <1ms | 湖南岳阳联通 18ms  | 7ms  |
> | 华北地区   | 天津移动 2ms    | 山西太原移动 191ms | 27ms |
> | 西南地区   | 云南昆明电信 <1ms | 云南玉溪电信 144ms | 24ms |
> | 西北地区   | 青海西宁联通 <1ms | 宁夏银川移动 71ms  | 8ms  |
> | 东北地区   | 辽宁大连联通 <1ms | 吉林松原联通 15ms  | 5ms  |
> | 港澳台    | 中国香港 2ms    | 中国台湾 27ms    | 14ms |

> [!TLDR]- International 境外测速结果
>
> | 区域     | 最快              | 最慢            | 平均  |
> | -------- | ----------------- | --------------- | ----- |
> | 全部节点 | 美国洛杉矶 <1ms   | 南非 178ms      | 35ms  |
> | 亚洲     | 新加坡 1ms        | 土耳其 35ms     | 17ms  |
> | 欧洲     | 德国法兰克福 <1ms | 英国伦敦 16ms   | 8ms   |
> | 北美洲   | 美国洛杉矶 <1ms   | 美国西雅图 27ms | 9ms   |
> | 南美洲   | 阿根廷 21ms       | 巴西圣保罗 50ms | 35ms  |
> | 非洲     | 埃及开罗 <1ms     | 南非 178ms      | 89ms  |
> | 大洋洲   | 新西兰 142ms      | 新西兰 142ms    | 142ms |
