Logo
Overview
提升部署在cloudflare、vercel或netlify的网站在中国国内的访问速度和稳定性

提升部署在cloudflare、vercel或netlify的网站在中国国内的访问速度和稳定性

通过优化的 CNAME 解析,改善 cloudflare、Vercel 和 Netlify 在中国大陆的访问速度和稳定性,解决官方默认解析的不稳定问题。附测速结果和常见问题解答

2024年4月1日
1 min read

前言

因为官方默认的cname解析出来的ip在国内访问的稳定性都很差,所以写了这个项目

Warning (IMPORTENT)

本 post 更新不及时,请点击下方 GitHub repo 查看!

如何使用

先放repo,欢迎提交issue。

enhanced-FaaS-in-China

  • 如果你的网站部署在cf,则把cname记录改为:
    • cf-cname.xingpingcn.top
      • 使用此dns解析建议:如果你的域名托管在cloudflare,那么使用这个cname很有可能会遇到403。建议把你的域名托管在非cloudflare平台,然后再在cf平台中删除你的站点,之后再使用。测速的时候一定要看下面的图。如果有些服务,例如cf worker,必须要把域名托管在cf,那么建议你使用cf的saas功能。
  • 如果你的网站部署在vercel,则把cname记录改为:
    • vercel-cname.xingpingcn.top
  • 如果你的网站部署在netlify,则把cname记录改为:
    • netlify-cname.xingpingcn.top
  • 如果你的网站部署在netlifyvercel上,则把cname记录改为:
    • verlify-cname.xingpingcn.top
      • 使用此dns解析建议:先把cname记录改为官方提供的url,等ssl/tls证书生成之后再把cname记录改为verlify-cname.xingpingcn.top
怎么测速
怎么测速

可能存在的问题

  1. 浙江、福建、河南的个别isp访问可能会失败 目前似乎只有泉州被墙(官方的cname也是同样的问题,或许是isp限制导致的)
  2. 对于测速工具的选择,itdog.cn测出来的结果有点问题(会出现大片的红,原因未知),可以试试用boce.com、cesu.net之内的来测

测速结果

CF

cf-22点
cf-22点
cf-22点-官方
cf-22点-官方
cf-23点-官方
cf-23点-官方

Vercel

vercel中午-官方
vercel中午-官方
vercel中午
vercel中午
vercel-23点晚高峰-官方
vercel-23点晚高峰-官方
vercel-23点晚高峰
vercel-23点晚高峰

Netlify

netlify中午-官方
netlify中午-官方
netlify中午
netlify中午
netlify-23点晚高峰-官方
netlify-23点晚高峰-官方
vercel-23点晚高峰
vercel-23点晚高峰

Q&A

Q:和官方提供的cname有什么差别?

A:

  • 官方的cname有时在平均速度上是很快的,但是缺乏稳定性,会出现好几个省份都访问不了的情况,又或者个别省份相应时间非常长
  • 而我的cname在平均速度上可能不是最快的,平均响应速度尽量维持在1秒内,最长的响应时间控制在2秒内,而返回非200状态码的省份尽量少于等于2个

Q:为什么分路线解析不准确?

A:我使用的是权威DNS服务器自带的路线解析,可能存在误判。如果你想要更加精准的分路线解析,可以自行选取其他DNS服务器——如dnspod——并添加Netlify.jsonVercel.json里的IP到A记录。或使用NS1.COM作为权威DNS服务器,并设置根据ASN进行路线解析。你可以看看我写的ASN列表

Q:为什么设置了你的CNAME解析后网站不能访问?

A:

  • 这大概率是使用了verlify-cname.xingpingcn.top导致的。需要先把CNAME记录改为官方提供的链接,等待SSL证书生成后再重新设置。这是由于该解析包含两个平台的IP,平台每次访问都会获得二者之一的IP,因而认为你在平台所填写的域名并不是你所拥有的。但是一旦生成证书后,证书就会缓存在平台上。
  • netlify支持上传自己的证书。如果还是不行就申请一个能自动续期的证书,写webhook,在证书更新的时候自动部署到netlify。

Q:为什么有的路线(如电信)的DNS A记录解析是官方提供的默认IP?

A:

这是因为该路线的其他IP质量较差,所以暂时停止解析其路线,改用官方提供的默认IP。你可以通过同时将网站部署在vercelnetlify,把cname解析改为verlify-cname.xingpingcn.top,从而提高容错率。两个平台同一线路同时失效的概率要低许多。

Q:为什么json文件有的路线是一个空列表?

A:

同上