中国增强版FaaS服务
通过将你的CNAME记录从官方提供的改为我制作的,即可提高部署在cloudflare、vercel或netlify上的网页在中国的访问速度和稳定性
使用方法
[!注意] 这里所说的将CNAME记录改为xxx,意思是在你的权威DNS服务器那里将用户要访问的域名——例如app.domain.com——的CNAME记录改为对应平台的优选CNAME记录。
示例1: 我部署在vercel上的
blog.domain.com
博客需要加速访问速度,首先要将blog.domain.com
的CNAME记录改为官方提供的域名,然后回到vercel的控制台查看SSL证书是否生成。生成后再将CNAME记录改为vercel-cname.xingpingcn.top
示例2: 我需要加速搭建在我的VPS上的网站,我需要使用CF作为CDN并保护源IP。如何使用SaaS功能
- 如果你的网站部署在
vercel
,则将CNAME记录改为:vercel-cname.xingpingcn.top
- 如果你的网站部署在
netlify
,则将CNAME记录改为:netlify-cname.xingpingcn.top
- 如果你的网站同时部署在
netlify
和vercel
上,则将CNAME记录改为:verlify-cname.xingpingcn.top
[!重要] 使用此DNS解析建议:先将CNAME记录改为官方提供的CNAME,等
SSL/TLS证书
生成之后再将CNAME记录改为verlify-cname.xingpingcn.top
- 如果你的网站部署在
cf
上,则将CNAME记录改为:cf-cname.xingpingcn.top
[!重要] 使用此DNS解析建议:
- 如果你的域名托管在Cloudflare,那么使用这个CNAME很可能会遇到403错误。建议将你的域名托管在非Cloudflare平台,然后在CF平台中删除你的站点,之后再使用。
- 如果有些服务,例如CF Worker、开启橙色云朵保护VPS的IP,必须要将域名托管在CF,那么建议你使用CF的SaaS功能。如何使用SaaS功能
如何测速
[!警告] 无论使用哪种方法测试,一定要加协议,然后在多个测速网站上都测试一下,因为测速网站本身也会时不时出现问题
- 可以在更改CNAME记录后进行测试
- 也可以像下图一样填写相关信息然后测速
可能存在的问题
浙江、福建、河南的个别ISP访问可能会失败目前似乎只有泉州被墙(官方的CNAME也存在同样的问题,可能是ISP限制导致的。与你的域名有很大关系)- 对于测速工具的选择,itdog.cn测出来的结果有些问题(会出现大片的红色,原因未知),可以尝试使用boce.com、cesu.net、阿里云拨测等工具来测试
为什么使用它
- 如果在大陆访问,官方的Anycast会将流量大概率路由到东南亚,路线压力很大,但存在压力较小的美国或欧洲路线。
- 官方的CNAME有时在平均速度上很快,但缺乏稳定性,会出现好几个省份都访问不了的情况,或者个别省份响应时间非常长。
- 由于存在被墙风险,如果使用单一平台——例如vercel——则会存在全军覆没的情况,即国内所有地方都无法访问你的网站。
[!注意] 这是优化后的速度
注:目前似乎只有泉州被墙(红色);测速结果未能及时更新,现在显示的是之前的测速结果;测速速度没有太大变化
vercel中午 cf-22点晚高峰
测速对比
[!重要]
注:目前似乎只有泉州被墙(红色);测速结果未能及时更新,现在显示的是之前的测速结果;测速速度没有太大变化
点击查看结果
cf-22点晚高峰 cf-23点晚高峰-官方 cf-22点晚高峰-官方 vercel-23点晚高峰 vercel-23点晚高峰-官方 netlify-23点晚高峰 netlify-23点晚高峰-官方 vercel中午 vercel中午-官方 netlify中午 netlify中午-官方
工作原理
选取CF、Vercel和Netlify的IP,定时测试速度,选取稳定且快的IP添加到域名的A记录。国内有三网优化,国外统一使用官方提供的A记录。
大约每一小时更新一次。
IP来源
-
vercel
- vercel ip
- 官方
cname.vercel-dns.com.
的A记录
-
netlify
- 官方提供的链接的A记录
-
cf
- 各种cloudflare付费用户的优选ip
-
境外默认ip
{
"VERCEL":"76.76.21.21",
"NETLIFY":"75.2.60.5",
"CF":"visa.cn."
}
问答
问:为什么设置了你的CNAME解析后网站不能访问?
答:
-
这很可能是因为使用了
verlify-cname.xingpingcn.top
导致的。需要先将CNAME记录改为官方提供的链接,等待SSL证书生成后再重新设置。这是因为该解析包含两个平台的IP,平台每次访问都会获得其中之一的IP,因此认为你在平台填写的域名并不是你所拥有的。但一旦生成证书后,证书就会缓存在平台上。 -
netlify支持上传自己的证书。如果还是不行,就申请一个能自动续期的证书。
-
如果你的网站部署在
cf
上,使用cf-cname.xingpingcn.top
,而你的域名托管在cloudflare,那么在这种情况下使用这个cname很可能会遇到403错误。建议将你的域名托管在非cloudflare平台,例如华为云,然后在cf平台中删除你的站点,之后再使用。 -
如果你只是在测速平台上遇到问题,你可能需要查看如何测速
问:与官方提供的cname有什么区别?
答:
- 官方的cname有时在平均速度上很快,但缺乏稳定性,可能会出现多个省份无法访问的情况,或个别省份响应时间非常长。
- 而我的cname在平均速度上可能不是最快的,但平均响应速度尽量保持在1秒内,最长响应时间控制在2秒内,而返回非200状态码的省份尽量不超过2个。
问:为什么分路线解析不准确?
答:我使用的是权威DNS服务器自带的路线解析,可能存在误判。如果你想要更精准的分路线解析,可以自行选择其他DNS服务器——如dnspod——并添加Netlify.json或Vercel.json中的IP到A记录。或使用NS1.COM
作为权威DNS服务器,并设置根据ASN
进行路线解析。你可以看看我写的ASN列表。
问:为什么有些路线(如电信)的DNS A记录解析是官方提供的默认IP?
答:这是因为该路线的其他IP质量较差,所以暂时停止解析该路线,改用官方提供的默认IP。你可以通过同时将网站部署在vercel
和netlify
,把cname解析改为verlify-cname.xingpingcn.top
,从而提高容错率。两个平台同一线路同时失效的概率要低得多。
问:为什么在json文件中有些路线是一个空列表?
答: 同上
自定义
如果你想自定义,例如增加第三个平台,如render
、railway
等,则需要自己准备测速工具和一个域名,并重写crawler.py
,在platforms_to_test
新建一个.py
文件,仿照文件夹内的其他文件重写run_sub()
方法,最后修改config.py
文件相关配置。