利用Cloudflare Partner和第三方DNS解析 实现国内外访问加速(自定义CF CDN的IP)

温馨提示:本文最后修改于 49 天前,部分内容可能已经过时。如文章内容或静态资源失效,请联系我进行更新,谢谢~

引子

几天前,我发现访问我的博客速度飞快,延迟很低,只在晚上稍有丢包,路由追踪过去发现cloudflare的CDN节点竟然在香港!平常通常会指向美西,这使得CF的CDN在国内访问速度不佳,对于我移动的网络更是“减速器”。路由追踪指向香港,物理距离近了很多,速度当然飞快。

然而,好景不长。最近几天,我在使用我的私有云时,发现网速奇慢无比。路由追踪一看——WTF!被解析到了法国法兰克福!延迟最低200+,高了有400+!高峰时段丢包率也不是很低。习惯之前超低延迟的我,自然受不了了。得想个办法。

实现技术

cloudflare的CDN入口IP是任播“Anycast”IP,虽然IP地址相同,但在全球不同地域,入口却是不同的,理论上算法会选择与你距离(不单单是物理距离,这个算法非常复杂)最近的入口进入。

像CF这样的大型云计算网络,它们内部是高速互联的,会以最好的网络进行互联互通。再加上CDN的缓存,不同入口进入的用户,也能拿到一模一样的数据。就像一座摩天大楼,不管从离你多远的入口进入,都算你进入了大楼。这也就是几年前,用“扫描Google IP”的方法给利用GAE的GoAgent续命翻WALL的原理~

然而我不是氪金用户,我是CF免费版用户,这套算法自然而然的也不会把最好的资源给我。这就是为什么有明明有更好的香港的服务器,我却被分配到了法兰克福的服务器上。我不得不听从CF这套算法的指令,从更远的入口进入。

我所要做的,就是从我最近的入口进入,用最少的时间,拿到相同的数据,让浏览器完成渲染。

步骤

言简意赅的记录下步骤,近期比较忙,可能稍有疏漏,待我日后慢慢补充。

一、Cloudflare Partner部分

  1. 到一家Cloudflare Partner提供商处进行注册,我使用的是这家的https://cdn.bnxb.com(没时间弄这个,有时间的话肯定自己搭一个)。期间需要输入你的Cloudflare账号和密码,不放心的可以自己自建Cloudflare Partner,我暂时不提供教程了。
  2. 点击上方的“域名接入”,选择DNS接入即可,后面可以进行更改。弹出的提示框选择确定即可。
  3. 点击上方的“域名列表”,选择自己的域名,进行下面的管理操作。今后我们对域名的操作,很大一部分在这里完成,而不是在CF官网。1.png
  4. 先点击“变更接入”,选择CNAME接入(图中我已经接入过了,所以没有CNAME的选项)。弹出的提示框选择确定即可。
  5. 然后点击“解析管理”,加入我们想要解析的子域名即可。在这一部分,跟在CF官网所填的内容是一致的,按照之前的填法就可以。
  6. 刷新页面,在页面的下方就有我们需要填到第三方DNS解析的CNAME记录的结果了。想用CDN的域名都会出现在这里。2.png

二、第三方DNS部分

  1. 到一家第三方DNS提供商处进行注册,我是用的是DNSPOD的服务,注意是https://www.dnspod.cn,从腾讯云进入需要上传身份证进行实名,在https://www.dnspod.cn不需要,直接QQ登录即可。(虽然QQ也实名了QAQ)阿里云等理论上也可以,我没有亲自试过。
  2. 进入DNSPOD控制台(不是腾讯云的),添加域名即可。
  3. 进入域名的控制台,添加CNAME记录:把刚才之前页面下方的CNAME记录导入进来;再添加A记录:之前页面下方并不是你的所有子域名,而只是你想用CDN的域名。把剩下的,不使用CDN的子域名都加上你源服务器的A记录。以上线路类型都为默认。这样,国外还是会就近选择CDN。3.png
  4. 重点来了:自定义CDN节点。我只定义了国内的,推荐这样做,否则工程量太大,另外很容易被境外的cloudflare服务器发现,导致域名账号被列入黑名单。给你想用CDN的域名分线路的加入CDN服务器的A记录,移动联通电信三家分开。移动和电信推荐解析到1.0.0.1,移动入口为香港,延迟很低,电信为美东;联通解析到104.27.188.44,日本IP,联通延迟低的吓人。具体如图。
附:cloudflare官方IP:
https://www.cloudflare.com/ips-v4
可以对这些官方IP进行路由追踪,选出最适合的IP。
另外还可以查看cloudflare官网使用的节点,通常是最好的线路:
https://www.cloudflare.com/cdn-cgi/trace
其中colo值为当前服务器位置,使用nslookup www.cloudflare.com查询当前使用的IP。
除了官方的广播IP外,还有一些分地域的IP。自己谷歌一下吧!这里就不公布了。

附:三大运营商推荐线路:
移动:最推荐使用ntt香港线路,延迟低,丢包率低,但IP很难找。其次是hkix香港线路,通常1.0.0.1使用的就是此线路。再次是美东,不推荐香港直连,丢包率极高。新加坡线路尚可。
电信:推荐使用美东cogentco线路,通常1.0.0.1使用的就是此线路。
联通:推荐使用日本ntt和美东线路,通常1.0.0.1使用的就是美东线路,日本ntt线路需要自己查找。

三、域名提供商部分

  1. 到你的域名提供商处,把NS服务器改为DNSPOD提供的服务器。大都是f1g1ns1.dnspod.net.f1g1ns2.dnspod.net.

大功告成啦!等待DNS解析生效即可。

效果

效果不言而喻。这是在亚太地区晚高峰,欧洲地区低谷时段进行的测试,二者的差距仍然非常明显。

4.png

此外,最近几天我还对这个主题的静态资源进行进一步整合,CSS和JS等静态资源几乎全都用上了国内CDN,速度应该也会有提升吧。

参考资料:

张戈博客使用CloudFlare CDN加速的经验技巧分享张戈博客 | 张戈博客
CloudFlare 自选IP/CloudFlare Pro - 萌精灵

~~End Of File~~

本文永久链接:https://blog.xmgspace.me/archives/cf-custom-ip.html

本文文章标题:利用Cloudflare Partner和第三方DNS解析 实现国内外访问加速(自定义CF CDN的IP)

本站欢迎转载与引用~但您需要注明文章标题与链接,并表明转载/引用自Xiaomage's Blog。

授权协议:署名-非商业性使用-相同方式共享 4.0 国际(CC BY 4.0)

标签:DNS , Cloudflare , CDN

还没有人评论哦,还不快抢沙发~

添加新评论

i_f01.pngi_f02.pngi_f03.pngi_f04.pngi_f05.pngi_f06.pngi_f07.pngi_f08.pngi_f09.pngi_f10.pngi_f11.pngi_f12.pngi_f13.pngi_f14.pngi_f15.pngi_f16.pngi_f17.pngi_f18.pngi_f19.pngi_f20.pngi_f21.pngi_f22.pngi_f23.pngi_f24.pngi_f25.pngi_f26.pngi_f27.pngi_f28.pngi_f29.pngi_f30.pngi_f31.pngi_f32.pngi_f33.png