You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

开启Cloudflare代理后域名解析出两个IP地址,不同用户查询结果不一致,求助原因

开启Cloudflare代理后域名解析出两个IP地址,不同用户查询结果不一致,求助原因

最近碰到个挺困惑的问题,跟大家分享下我的排查和解决过程:

我给域名davidzhu.xyz用Cloudflare做DNS解析,还开了代理(主要是冲着免费SSL去的),但自己用dig davidzhu.xyz +short查询时,居然返回了两个IP:

172.67.210.8
104.21.50.195

可明明我在Cloudflare后台只设置了一条A记录啊!更奇怪的是,另一个朋友查询我的主域名和www.davidzhu.xyz子域名,返回的却是同一个IP:144.202.12.32

一开始我以为是自己Mac的DNS缓存搞的鬼,赶紧试了sudo killall -HUP mDNSResponder刷新缓存,结果完全没用。

先给大伙贴些关键信息:

  • 我的Cloudflare域名服务器(NS)信息:
    $ dig chin.ns.cloudflare.com +short
    172.64.32.84
    173.245.58.84
    108.162.192.84
    
    $ dig noel.ns.cloudflare.com +short
    108.162.193.216
    172.64.33.216
    173.245.59.216
    
  • dig www.davidzhu.xyz +trace追踪解析过程,最后从Cloudflare的NS服务器返回的是两条A记录:
    www.davidzhu.xyz.   300 IN  A   104.21.50.195
    www.davidzhu.xyz.   300 IN  A   172.67.210.8
    

后来多亏@YisroelTech的提示,我试着把Cloudflare上对应域名的代理功能关掉了(就是把橙色云朵改成灰色),结果立刻正常了!再查询域名就只返回我原本设置的源站IP 144.202.12.32dig +trace的结果也显示只有单条A记录了。

现在终于搞清楚原因了:当开启Cloudflare的代理后,Cloudflare会把你的域名解析到它自己的CDN节点IP上,这些节点IP通常是多个的,用来做负载均衡和就近访问调度。所以不同地区、不同网络环境的用户查询到的IP可能不一样,甚至同一用户多次查询也可能得到不同的节点IP,这都是Cloudflare CDN的正常运作机制。

如果想要所有用户都解析到你自己设置的源站IP,只需要关闭Cloudflare的代理功能就行,但这样就没法享受Cloudflare的免费SSL和CDN加速服务了,得根据自己的实际需求来权衡~

备注:内容来源于stack exchange,提问作者Shaowen Zhu

火山引擎 最新活动