Cloudflare 是全球著名的网络服务提供商,最出名的业务就是免费 CDN 业务。不过这篇文章可不是来给 Cloudflare 打广告的,而是说一下如何关闭 CloudFlare 的自动匹配 IPv6 这个问题。

最近一段时间里,本站时不时的就会出现 DNS 解析无响应的情况,浏览器打开页面直接白屏,多次强制刷新后才能解析出来,十分影响体验。于是各种排查,从宽带,浏览器和不同设备,结果问题依旧,最后把关注点放到了 Cloudflare 的解析问题上。

国内经过工信部为首的部门几次大力推广和政策要求,三大运营商的家用宽带基本都普及了 IPv6 地址,但问题就出在 Cloudflare 对 IPv6 的优先级上了。哪怕网站服务器端完全没配置 v6,但是只要访问用户有 v6 地址的, Cloudflare 一律会优先自动解析到他家 v6 节点上,理由是认为 IPv6 是未来趋势。这个理由是没错,然而 Cloudflare 的 v6 节点路径走向有问题,对于大陆地区的访问速度反而不如 v4。

ping 一下本站域名,可以发现默认都是返回 v6 节点地址:

在移动宽带下,延迟都突破了 300ms,实在是过于感人,而且对于移动会绕到欧洲去,CDN 直接从加速变成了反向减速。

IPv6 的选项位于 Cloudflare 后台的 Network 分类中,但默认是开启状态完全无法修改:

于是去网上查了一下,发现还只能通过 Linux 命令行来借助 API 来关闭这选项,摆明了就是故意恶心人的。

首先去到账户信息页面:https://dash.cloudflare.com/profile

点击 API Tokens 分类,然后点击 Global API Key 后面的 View,获取 Global API Key:

然后回到域名管理界面,Network 分类下的 IPv6 选项,点击这个选项右下角的 API 字样:

然后可以看到两个管理 API 链接,把第二个 Change IPv6 setting 的链接复制下来,也就是 PATCH 开头这一串:

接着到 Linux 命令行下执行以下命令,整个复制粘贴,修改其中信息为自己的,然后回车运行即可:

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/316dda2d84433db5a87fe44b940c119f/settings/ipv6" \
     -H "X-Auth-Email: abcd@outlook.com" \
     -H "X-Auth-Key: 723499305e50b162e69555c59bev3c25623a4" \
     -H "Content-Type: application/json" \
     --data '{"value":"off"}'

其中 PATCH 开头的链接换成 IPv6 选项里获取的,abcd@outlook.com 替换为自己的 Cloudflare 账户名称,X-Auth-Key 后面替换成货到到的账户的 Global API Key。

运行后看到 success 后面写着 true 就是成功了:

现在刷新页面就可以看到 IPv6 选项变成了 off 状态:

等 DNS 解析彻底清除 v6 记录的话大概需要 10-30 分钟不等,然后 ping 一下域名,就会发现变回 ipv4 节点了:

注意的是这个操作选项只针对单个域名,如果你有多个域名在 Cloudflare ,那么就需要每个域名都获取对应的 API 操作一遍。

2222
Latest posts by 2222 (see all)

为网站添加图片 WebP 自动转换功能

最近这几天在网上闲逛时,发现了一个名叫 WebP_Server_Go 的新项目,可以无缝将网站上已有图片转换为 WebP 格式输出,同时不改变原始图片链接,看起来挺适合...

阅读全文

为华为 HUAWEI MatePad Pro 安装 GMS 服务

因为某些众所周知的原因,华为现在的各种新设备都是没有预装谷歌服务(Google Mobile Service,简称 GMS)的,本文就来以 MatePad Pro 为例子,说说如何给华...

阅读全文

在 Alpine Linux 里安装 Docker

虽然 Alpine 最常见的用途是当成 Docker 容器的底包,但实际其本身也是个正经的 Linux 发行版,有系统镜像体积小,安装迅速和消耗内存少的特点,本文来说一...

阅读全文

欢迎留言