2021.12 请注意,最近cloudflare禁止了CFP通过才cname新的网站,因此本文中提及的方式已经完全失效。请知悉。
引子
几天前,我发现访问我的博客速度飞快,延迟很低,只在晚上稍有丢包,路由追踪过去发现cloudflare的CDN节点竟然在香港!平常通常会指向美西,这使得CF免费版的CDN在国内访问速度不佳,对于我移动的网络更是“减速器”。路由追踪指向香港,物理距离近了很多,速度当然飞快。
然而,好景不长。最近几天,我在使用我的私有云时,发现网速奇慢无比。路由追踪一看——WTF!被解析到了法国法兰克福!延迟最低200+,高了有400+!高峰时段丢包率也不是很低。习惯之前超低延迟的我,自然受不了了。得想个办法。
实现技术
cloudflare免费版分配到的IP通常是104.24.4.110和104.24.5.110.而这两个IP是任播“Anycast”IP,虽然IP地址相同,但在全球不同地域,入口却是不同的,理论上算法会选择与你距离(不单单是物理距离,这个算法非常复杂)最近的入口进入。
像CF这样的大型云计算网络,它们内部是高速互联的,会以最好的网络进行互联互通。再加上CDN的缓存,不同入口进入的用户,也能拿到一模一样的数据。就像一座摩天大楼,不管从离你多远的入口进入,都算你进入了大楼。这也就是几年前,用“扫描Google IP”的方法给利用GAE的GoAgent续命翻WALL的原理。
然而我不是氪金用户,我是CF免费版用户,这套算法自然而然的也不会把最好的资源给我。这就是为什么有明明有更好的香港的服务器,我却被分配到了法兰克福的服务器上。用户不得不听从CF这套算法的指令,从更远的入口进入。
我所要做的,就是从我最近的入口进入,用最少的时间,拿到相同的数据,让浏览器完成渲染,展示出博客页面。
步骤
言简意赅的记录下步骤,近期比较忙,可能稍有疏漏,待我日后慢慢补充。
一、Cloudflare Partner部分
- 到一家Cloudflare Partner提供商处进行注册,我使用的是这家的https://cdn.bnxb.com(没时间弄这个,有时间的话肯定自己搭一个)。期间需要输入你的Cloudflare账号和密码,不放心的可以自己自建Cloudflare Partner,我暂时不提供教程了。
- 点击上方的“域名接入”,选择DNS接入即可,后面可以进行更改。弹出的提示框选择确定即可。
- 点击上方的“域名列表”,选择自己的域名,进行下面的管理操作。今后我们对域名的操作,很大一部分在这里完成,而不是在CF官网的控制台中。
- 先点击“变更接入”,选择CNAME接入(图中我已经接入过了,所以没有CNAME的选项)。弹出的提示框选择确定即可。
- 然后点击“解析管理”,加入我们想要解析的子域名即可。在这一部分,跟在CF官网所填的内容是一致的,回源地址填写你的服务器IP地址,这个按照之前的填法就可以。
- 刷新页面,在页面的下方就有我们需要填到第三方DNS解析的CNAME记录的结果了。想用CDN的域名都会出现在这里。
二、第三方DNS部分
- 到一家第三方DNS提供商处进行注册,我是用的是DNSPOD的服务,注意是https://www.dnspod.cn,从腾讯云进入需要上传身份证进行实名,在https://www.dnspod.cn不需要,直接QQ登录即可。(虽然QQ是实名的...)阿里云等其他第三方dns等理论上也可以,我没有亲自试过,试过的可以在评论区留下你使用的感受:)
- 进入DNSPOD控制台(不是腾讯云的),添加域名即可。
- 进入域名的控制台,添加CNAME记录:把刚才之前Cloudflare Partner“解析管理”页面下方的CNAME记录导入进来;再添加其他记录:之前Cloudflare Partner“解析管理”页面下方并不是你的所有子域名,而只是你想用CDN的域名。把剩下的,不使用CDN的子域名都加上你源服务器的A记录,或者是其他记录。以上线路类型都为默认。这样,在国外还是会就近选择CDN,国外用户能享受到良好的网络体验。
- 重点来了:自定义CDN节点。我只定义了国内的,推荐这样做,否则工程量太大,另外很容易被境外的cloudflare服务器发现,导致域名账号被列入黑名单。给你想用CDN的域名分线路的加入CDN服务器的A记录,移动联通电信三家分开。至于填写什么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。自己谷歌一下吧!这里就不公布了。附:三大运营商推荐线路,2020.7.30诈尸更新:
移动:最推荐使用香港hkix线路,丢包延迟相对较低;另外就是香港cmi线路,但作为移动和cf的public peer,延迟丢包较高。南方移动可以尝试走日本奥电,有时有奇效。新加坡Equinix线路丢包延迟日常爆炸;美西、美中Cogentco线路白天勉强能用,晚上根本没法用。
电信:推荐使用美东电信机房,电信和cf的public peer直连线路,到洛杉矶或圣何塞机房,通常1.0.0.1
使用的就是此线路,但晚上会爆炸。晚上爆炸可以试试走level3到阿姆斯特丹或伦敦。
联通:推荐使用美东gtt线路,到洛杉矶机房,通常1.0.0.1
使用的就是美东线路,另外日本ntt线路需要自己查找,延迟略低但晚间丢包率爆炸。cogentco日常爆炸。
注:线路都是动态的,运行商随时可能调整线路,有的稀有IP还是需要自己找的~附赠一个我自用的IP:104.24.108.166,三网体验都不错。
三、域名提供商部分
- 到你的域名提供商处,把NS服务器改为DNSPOD提供的服务器。DNSPOD的大都是
f1g1ns1.dnspod.net.
和f1g1ns2.dnspod.net.
大功告成啦!等待DNS解析生效即可。
效果
效果不言而喻。这是在亚太地区晚高峰,欧洲地区低谷时段进行的测试,二者的差距仍然非常明显。
此外,最近几天我还对这个主题的静态资源进行进一步整合,CSS和JS等静态资源几乎全都用上了国内CDN,速度应该也会有提升吧。
参考资料:
张戈博客使用CloudFlare CDN加速的经验技巧分享张戈博客 | 张戈博客
CloudFlare 自选IP/CloudFlare Pro - 萌精灵
cloudflare代理后百度站长工具Robots检测无法获取robots.text。博主知道怎么回事吗⌇●﹏●⌇
抓取错误显示是超时还是有其他异常代码呢?超时就是网络问题,多试两次就好了,有错误代码就要按照提示来。再看看cloudlfare防火墙里面,百度的蜘蛛有没有被屏蔽。
说实话联通和电信手动指定节点还是有必要的 北京联通家宽访问我的网站仍然是忙时300ms+,闲时190ms+的延迟,而我ping你的网站发现是走了香港线路,延迟就40多ms,和我直接ping自己源站是差不多的,加载速度也快太多了。另外还有个叫UDomain的CDN,总部在HK,大陆线路也非常不错,新用户可以免费试用15天,价格也可以接受。我参与维护的另一个网站就是用的他们家CDN,体验良好,不过配置解析只支持CNAME方式。问题是它好像不认我在nginx里设置的vhost,配置完dns之后看到的页面和直接输入源站IP是一样的,应该是我操作有问题吧😂
主要是网速慢非常影响体验,SEO倒是次要的
我的源站在香港腾讯云,境内方向直接解析到了源站,境外或者一些其他服务用的是cloudflare的cdn 联通是三大运营商到cf里最拉的,自选IP基本作用不大,高峰延迟300+属于基本操作 移动有的时候会去洛杉矶和圣何塞,就很需要自选到香港。
UDomain那是企业级的吧,好是很好,就是费用我觉得…有点贵,我感觉我是用不起😂我个人认为不如找个线路好的vps.
我那个站也是在腾讯云香港,直接解析源站我是真不敢,背后的原因很复杂,我的站要是漏了源站IP估计得被打成筛子😂北京联通确实是有链接CF很快的节点的,HK节点基本上就是100ms以内的速度,现在是我网站的主站能给我分配到任播IP,几个分站(例如探针 status.intermedice.cn )就给我分配104开头的美国节点。UD包月那肯定不是给个人用的,选择按流量收费的方式还是能接受,每G 1.5港币,一个月下来基本上也就是在外面一个人吃一顿饭的钱😂
北京联通能接到香港CF的吗?方便的话能否告知一下IP段?我联通网扫CF IP段很多次了,目前只能走到洛杉矶,圣何塞,阿姆斯特丹,巴塞罗那。
真的想体验好的话,上美西高防吧,价格不算特别贵,国内效果也还可以,比CF要好。
能接上,我是用别人搭的cf IP段扫描的工具扫到的,北京这边联通和移动都能接上香港节点,延迟特别低,并且只有香港节点下载速度能达到MB/s的水平。电信没试因为我只有电信卡,没有电信宽带。
昨天最近评论栏里出现了本文被采集站盗取的提示并附上了被盗后的链接,不过后来又没了。被盗提示是怎么实现的?
那个是pingback功能,对方用的应该也是wordpress,就会自动给我发pingback告诉我文章被引用了。没有了是我很快删除掉了,所以你再看就没有了。
加州应该是美西而不是美东,你推荐的那个IP失效了。
这篇文章挺久没有更新了,网络路由经常变化,这篇文章里面提到的很多路由都已经变了,有时间的话(大概暑假会写...)会再写篇自选cloudflare IP的文章和常见的国际路由线路的文章。要找自选IP的话你可以nslookup cloudflare.xmgspace.me一下,这是我自选的IP,丢包还可以,不定期更新,不过是对欧洲源站专门优化的。
近日发现部分胡志明市服务器可以直连,延时较低。博主可以试下cloudflare的河内和胡志明市节点能否直连,晚上丢包如何。
电信到越南的胡志明市或者河内这条线吗?多半是走vnpt,电信可能能走到的,但晚上速度可能很难上去。cloudflare跟电信的Peer在美西呢,理论上很难走到越南去。
我说的就是按你这篇文章的方法自定义cloudflare走越南节点。
越南节点是走vnpt吗?...电信跟越南vpnt虽然是有直连,但是口子相当小,负载低的时候还好,一高就爆炸。这篇文章只是介绍了怎么用cfp,优选IP介绍的不多。等12月份下旬会更新一篇优选cloudflare IP的文章,欢迎再来看看~
现在好多提供Partner服务的网站都停止注册了,我试了下萌精灵,我的域名说只能用NS解析,是所有的CN域名都只能NS解析么……我的站最近换了WordPress,现在没缓存的情况下第一次打开我的站慢的掉渣,有时还必须再刷新一次才能显示正常,这是逼着我备案再换成国内CDN么 ̄﹃ ̄
是的 cloudflare禁止cfp通过cname进行接入了,但是之前已经接入的域名不受影响。富强指定hosts倒是没问题,要做站的话是不行了。
现在还剩一条路子,plesk的伪pro套餐好像还可以通过cname接入,但是支持这一插件的plesk面板太少了。krypt旗下的ion支持,他家之前的免费plesk已经炒上200了,还有一家叫HoRain的,利用plesk提供有偿的接入,价格也不便宜
cf的cdn 除非移动,自选效果很有限,特别是联通 但是NS接入的话会带ipv6,国内v6出去的速度...很令人捉急啊
不想备案还想速度快的话,就只能上香港不绕路的VPS了 或者美西直连的VPS...
我感觉俄罗斯远东和越南的直连的服务器也很快。
联通或者电信到俄罗斯远东很多时候很不错的,到俄罗斯远东(包括不绕欧洲/美国的 俄罗斯方向的)走ttk/rt效果很好 电信我知道有到越南vnpt的线,随着今年7月出口扩容,体验也有提升。
但电信和联通主力方向还是美西,到其他地方的口子都不太大,人一多保准炸。
周末无聊traceroute了一下,北京这边家宽去越南的线路都很玄学,VNPT是北京-香港-新加坡-河内,还算比较正常,Viettel则是先去新加坡,然后绕一下日本再绕回去,这一路下来延迟就达到了美国西海岸水平😂但是越南这两个运营商到AS4134、4837都是有直连的出口的,简直玄学。
越南服务器也有些是直到不绕路的,延时才20毫秒。
那么访问别人的套了cloudflare的网站怎样自定义节点?
这个只能通过改hosts或者本地搭建DNS服务器,自定义返回结果来实现了,也是可以自定义的。
抱歉了,大佬,已经添加转载链接 :i_f07:
没事没事 查偶尔资料看到转载我的文章没有来源链接,心里确实有点不是滋味 不过现在能加上链接就好 赞一个 :i_f02:
请问dnspod解析要多长时间啊, 我这里十几个小时都没有生效
一般来说,国内的DNS解析生效很快的...你用的是不是运营商默认的DNS?运营商默认的DNS缓存时间比较长,可能得等一等;建议你换成腾讯云或者阿里云的公共DNS,基本秒生效。
TTL:600秒=10分钏.