最近使用cloudflare的CDN的时候,前两天ping都是返回的IPv4的地址,昨天重新启动家里的路由器以后,发现网站变得很慢,然后就ping一下自己的网站,发现返回的都是IPv6的地址,而且延时都在300ms左右,我知道家里的移动宽带对于访问外国的网站很慢,不过通过CDN加速以后,原来都控制在50ms左右,大概是从香港线路过来的,所以肯定是cloudflare的问题,通过百度搜索以后发现,cloudflare会打开IPv6自动解析,那么关闭cloudflare的IPv6自动解析能不能解决这个问题呢?
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 操作一遍。