Daimon's Blog
主页 归档 关于 RSS 探针 常用工具
主页
归档
关于
RSS
探针
常用工具

Cloudflare 优选 IP / 优选域名:原理 + 实操 + 避坑

daimon daimon 2026-02-03 #Cloudflare#优选IP#CDN#DNS

把节点套上 Cloudflare CDN 之后,速度往往比直连还慢——因为 CF 默认分配给你的 IP 不一定离你近。这时候就需要”优选”:从 CF 的几千个 IP 里挑出对你这条线路最快的几个,让客户端只连这些 IP。

但”优选”这个词在社区里被用得很乱,官方优选 IP / 反代优选 IP / 优选域名 是三个不同的东西。这篇先把概念分清楚,再给操作流程。

一、三种”优选”的区别#

graph TD C[客户端] --> Q{填什么入口?} Q -->|CF 官方 IP| O[官方优选
挑 CF 自家 IP] Q -->|别人 VPS 的反代 IP| R[反代优选
挑别人架的反代] Q -->|一个域名| D[优选域名
域名背后是一堆 IP] O --> CF[Cloudflare CDN] R --> VPS[云厂商 VPS
跑着 Nginx 反代] --> CF D --> X{解析出的是?} X -->|官方 IP| CF X -->|反代 IP| VPS CF --> S[你的源站 VPS] VPS --> CF
类型入口 IP 来源端口要求稳定性
官方优选 IPCloudflare 自家 IP 段13 个端口通吃(80/443/2052/…)最稳
反代优选 IP别人 VPS 跑反代的 IPIP 和端口强绑定,扫到啥端口用啥一般,反代主人随时可能停
优选域名大厂域名解析出来的 IP看域名后面挂的是官方 IP 还是反代 IP取决于背后

💡 关键认知:CF CDN → 你的源站这一段路由是固定的,优选只能优化”你 → CF 入口”这一段。

二、CF 官方 IP 段#

所有 CF 公网 IP 的完整列表:

1
https://www.cloudflare.com/ips/

主要是这几个段(IPv4):

1
173.245.48.0/20
2
103.21.244.0/22
3
103.22.200.0/22
4
103.31.4.0/22
5
141.101.64.0/18
6
108.162.192.0/18
7
190.93.240.0/20
8
188.114.96.0/20
9
197.234.240.0/22
10
198.41.128.0/17
11
162.158.0.0/15
12
104.16.0.0/13
13
104.24.0.0/14
14
172.64.0.0/13
15
131.0.72.0/22

任意 CF 官方 IP 都能做你域名的入口(前提是你的域名套了 CF CDN)。

三、官方优选 IP 实操#

3.1 用 CloudflareSpeedTest#

1
https://github.com/XIU2/CloudflareSpeedTest

下载对应平台的二进制(Windows/macOS/Linux 都有)。基本用法:

Terminal window
1
# Linux / macOS
2
./CloudflareST
3
4
# Windows
5
.\CloudflareST.exe

常用参数:

参数含义
-n 200延迟测试线程数(默认 200)
-t 4每个 IP 测延迟次数
-dn 10下载测速数量(最快的几个进入下载阶段)
-dt 10下载测速时间(秒)
-tl 200平均延迟上限(ms),超过的不要
-tll 40平均延迟下限(避免数据中心间假快)
-tlr 0.2丢包率上限
-p 10输出前 N 个结果
-f ip.txt指定 IP 段文件
-o result.csv输出 CSV

实战示例:

Terminal window
1
# 标准跑法
2
./CloudflareST -n 500 -t 4 -dn 20 -dt 10 -tl 200 -tll 40
3
4
# 限定国家段(手动准备 ip.txt 只放某个段的)
5
./CloudflareST -f ip.txt -p 10 -o result.csv

跑完输出 IP 列表 + 延迟 + 下载速度。把最快的几个填到你的客户端节点配置里替换 CDN 入口域名。

3.2 输出示例#

1
IP 地址 已发送 已接收 丢包率 平均延迟 下载速度 (MB/s)
2
104.20.157.18 4 4 0.00 35.21 12.45
3
172.67.128.45 4 4 0.00 38.10 10.21
4
104.18.32.99 4 4 0.00 41.50 9.87

3.3 写进客户端#

把 CF 入口 IP 写到节点 server 字段:

1
# mihomo 节点示例
2
proxies:
3
- name: CF-Fast
4
type: vless
5
server: 104.20.157.18 # ← 优选出来的 IP
6
port: 443
7
uuid: your-uuid-here
8
tls: true
9
servername: your-cdn-domain.com # ← 真实的 CDN 域名(SNI 不能改)
10
network: ws
11
ws-opts:
12
path: /your-path
13
headers:
14
Host: your-cdn-domain.com

🪤 核心:server 换成优选 IP,但 servername(SNI)和 Host 头必须保留原域名——否则 CF 不知道你要访问哪个域名。

四、反代优选 IP 是什么#

反代优选 IP 是别人的 VPS 在帮你”转发到 Cloudflare”:

  1. 某人在云厂商(甲骨文 / AWS / 阿里 / 腾讯)开了台 VPS
  2. 在上面架了 Nginx,把 443 → 转发到一个 CF 域名
  3. 你通过扫描发现”这台 VPS 的 IP + 这个端口可以当 CF 入口”
  4. 你把它当 CF 入口 IP 用

特征:

  • IP 常见 8.x.x.x、47.x.x.x 这类常见云厂商段
  • IP 和端口强绑定:扫到 443 就只能用 443
  • 稳定性差:反代主人随时可能关掉 / 改配置

⚠️ 反代 IP 本质是”借用别人的带宽”,不建议长期依赖。商业行为甚至涉及法律风险,玩玩可以,重要服务不要押宝在这上面。

五、优选域名#

优选域名不是新技术,是用域名打包一堆 IP。

5.1 类型 A:解析为 CF 官方 IP#

典型的”大厂套 CF 域名”,比如某些跨国公司用了 CF:

1
visa.com ← 解析出来是 CF 官方 IP
2
wto.org ← 同上

用法:

  • 客户端 server 字段填这个大厂域名
  • servername / Host 仍然填你自己的 CDN 域名

效果跟”官方优选 IP”等价,只是入口换成了”这个域名当前解析到的 CF 官方 IP”。

5.2 类型 B:解析为一堆反代 IP#

域名的 A 记录是一池子反代 VPS 的 IP:

1
cdn-fast.example.com A 8.1.2.3
2
cdn-fast.example.com A 47.4.5.6
3
cdn-fast.example.com A 103.7.8.9

客户端每次连接,DNS 轮询选一个。两个关键注意点:

  1. IP 地区要尽量一致:如果日本/新加坡/美国混在一起,每次连可能国家在跳,敏感站会风控。
  2. 所有 IP 的端口要统一:如果节点写 443,A 记录里每个 IP 都必须在 443 上跑有效反代。

5.3 优选域名列表#

社区维护的现成列表:

1
https://www.wetest.vip/page/cloudflare/cname.html

里面给了一堆”扫好的”域名,标注了对应的运营商 / 地区。

六、DNS 知识补课:一域名多 IP 是怎么实现的#

理解优选域名要先理解 DNS 多记录:

1
cdn.example.com A 1.1.1.1
2
cdn.example.com A 2.2.2.2
3
cdn.example.com A 3.3.3.3

DNS 解析时一次返回所有 IP,客户端选一个连(不同系统策略不同:轮询、按顺序、最快)。

也可以 IPv4 + IPv6 同时挂:

1
cdn.example.com A 1.1.1.1
2
cdn.example.com AAAA 2400:xxxx::xxx

或者用 CNAME 指向另一个域名,间接拥有一堆 IP:

1
cdn.example.com CNAME fast-pool.cdn-provider.xyz

fast-pool.cdn-provider.xyz 下面挂着十几个 IP,由 CDN 提供方维护。

七、自动化:定时优选 + 自动写回 DNS#

进阶玩法:用脚本定时跑 CloudflareST,把 Top N 的 IP 写到自己 CF 域名的 A 记录里:

1
#!/usr/bin/env bash
2
set -e
3
4
# 1. 跑优选
5
./CloudflareST -n 500 -t 4 -dn 10 -dt 10 -tl 200 -p 5 -o result.csv
6
7
# 2. 解析前 5 个 IP
8
IPS=$(awk -F, 'NR>1 {print $1}' result.csv | head -5)
9
10
# 3. 调 CF API 把这些 IP 写到 DNS(伪代码)
11
for ip in $IPS; do
12
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
13
-H "Authorization: Bearer $CF_TOKEN" \
14
-H "Content-Type: application/json" \
15
--data '{"type":"A","name":"fast","content":"'$ip'","ttl":120,"proxied":false}'
16
done

挂到 cron:

1
0 4 * * * /path/to/auto-optimize.sh > /var/log/cf-optimize.log 2>&1

每天凌晨 4 点重新优选 + 更新 DNS。

⚠️ 这个脚本是示意,实际需要先清除旧 A 记录再加新的。CF API 文档:Cloudflare API Docs

八、踩坑清单#

现象原因解决
优选完速度反而更慢servername/Host 没保留原域名改回原域名
测的快用起来慢CF IP 是数据中心的 anycast,测速好但实际可能绕远路多测几次 + 看下载速度而不只看延迟
反代 IP 用着用着失效反代主人停了/改了找新的,或转回官方 IP
优选域名忽快忽慢A 记录里 IP 来自不同地区选地区一致的
公司网/校园网测不准公网出口走的代理/CDN用家庭网络测,或者用 VPS 测
CF 反 DDoS 时优选 IP 全废CF 紧急情况下会临时切流等几小时

九、几条实用经验#

  • 测速看下载速度,不只看延迟——延迟 30ms 但下载只有 200KB/s 的 IP 没意义。
  • -tll 40 加上:CF 数据中心之间偶尔会出现 < 10ms 的”假延迟”,但实际拉不动文件,过滤掉。
  • 优选 IP 别贪多:写 3-5 个就够,客户端会自动选最快的。
  • 官方 IP > 反代 IP:稳定性差太多,重要服务永远首选官方。
  • 不同时段测速结果不一样:晚上 8-11 点高峰期测最准。
  • CF Workers/Pages 加速不需要优选:它们走的是 Cloudflare 自己的边缘网络,比走 CDN 入口更快。

把这套理解透,你的 CF 节点速度就能跑满线路带宽,不再受默认 IP 的限制。

Docker 走代理的 3 种姿势:daemon / Compose / host 网络
Cloudflare Tunnel:零端口暴露的内网穿透方案
本博客所有文章除特别声明外,均遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。
博客框架 Astro & Fuwari
冀ICP备20260167号
1
一、三种”优选”的区别
2
二、CF 官方 IP 段
3
三、官方优选 IP 实操
3.1 用 CloudflareSpeedTest
3.2 输出示例
3.3 写进客户端
4
四、反代优选 IP 是什么
5
五、优选域名
5.1 类型 A:解析为 CF 官方 IP
5.2 类型 B:解析为一堆反代 IP
5.3 优选域名列表
6
六、DNS 知识补课:一域名多 IP 是怎么实现的
7
七、自动化:定时优选 + 自动写回 DNS
8
八、踩坑清单
9
九、几条实用经验