ClouDNS .asia免费域名 托管到CloudFlare开CDN / desec.io

 

你以为的操作流程

操作 Cloudns

注册 www.cloudns.net 略

登录之后,

在ClouDNS点Create zone,选Free zone申请免费域名

前缀随便取一个顺眼的.

后缀 不要选 .cloudns.cl (我试过, 添加不了 Cloudflare)

.cloudns.asia 可以.

* 欢迎大家在评论中分享哪些后缀可以使用.

免费域名后缀不要选.cloudns.cl,选.cloudns.asia


操作 Cloudflare

注册 www.cloudflare.com 略

Add site

在Cloudflare控制台点Add site

把你在 Cloudns 申请的域名写进去. 注意是域名全名, 别只写前缀. 应该是类似下面这样:

xxx.cloudns.yyy

把ClouDNS申请的完整域名填进去,再点Continue

滚到最下面, 选 免费的 plan

滚到底部,选0美元的免费计划

一路 下一步,

注意这两个 nameserver

一路下一步,记下Cloudflare给出的两个名称服务器

切换到 Cloudns 

把原有的 NS 设置都删除

回到ClouDNS,把原来的NS记录全部删除

添加 NS 类型的 DNS 记录 

* 注意, Cloudflare 告诉你的那 2 个 nameserver 都要添加

没有NS记录后,点添加新记录

添加NS记录,指向Cloudflare给的名称服务器

添加完应该是像这样子的

两条NS记录都指向ns.cloudflare.com

切换到 Cloudflare

下一步让 Cloudflare 检查你刚刚设置的 nameserver, 然后耐心等一下.

回到Cloudflare,点Done, check nameservers让它检查

检查通过后, Cloudflare 会给你发通知邮件的.

Cloudflare发邮件通知域名已在免费套餐激活

然后, 你可以按你以前学习的方式添加DNS解析.

比如, 像下面这样

按以前的方式在Cloudflare添加解析,代理状态为DNS only

但, 这时候你会发现不对劲. 不管等多久, DNS解析都不生效.

接下来就要搞一些骚操作.


在VPS上申请域名的证书

在 Cloudns 设置 DNS 解析到真实IP地址

我这个小鸡是 IPV6 的, 那么就添加 AAAA 记录. 如果你的小鸡是 IPV4 的地址, 那么添加 A 记录.

但解析一直不生效,红框是那条AAAA记录

申请域名的证书

略.

* 不管你的证书是caddy自动申请的, 还是acme脚本申请的. 凡是需要域名解析到真实IP地址的情况, 都要在 Cloudns 上设置. Cloudflare上面的域名解析是无效的. (感谢 @smithnet 的指点)


如果你的VPS的IP没有被墙的话, 到这一步, 你搭梯子生成的节点应该是通的. (先不考虑速度的问题)

如果你是用的我的方案搭梯子, 用浏览器检查  域名 应该显示伪装站, 用浏览器检查  域名/path 应该显示 400 bad request.

* 如果不是这样的结果, 说明到目前为止你出现了问题. 不要盲目继续, 先把目前的问题排查了再说.


打通 Cloudflare 的 CDN 通道

(感谢 @smithnet 的指点)

在 Cloudns 设置域名解析到 Cloudflare 的IP范围

Cloudflare 的 IP 范围在此 https://www.cloudflare.com/zh-cn/ips/

挑选一个IPV4, 一个IPV6, 比如 

104.16.0.0
2606:4700::

Cloudflare官方IP段,红框标出104.16.0.0/13和2606:4700::/32

Cloudns 中添加DNS设置, 像是下面这样

改在ClouDNS添加解析:A指向104.16.0.0,AAAA指向2606:4700::


Cloudflare 打开 CDN (小黄云)

回到Cloudflare把这条AAAA记录的代理状态改成Proxied


到此为止, 数据就可以通过 Cloudflare 的CDN网络翻墙来到你的VPS了.

数据链路是这样的:

1. 根据 Cloudns 的 DNS设置, 解析 [你的域名] 为 104.16.0.0, 所以数据包从你的 电脑 / 手机, 来到了 104.16.0.0 , 你可以理解为这是 Cloudflare CDN网络的其中一个服务器.

2. 然后 Cloudflare CDN网络看数据包中的 SNI 为 [你的域名]. 根据你打开了CDN的这个设置, 知道要把数据包送到CDN网络的另一端, 送到你的 VPS (真实IP地址).

* 如果还想学习更多知识, 请看: 连接 V2Ray Websocket + TLS 模式服务器的过程


但, 你发现不对劲

节点不通.

用浏览器检查 域名 并不能打开伪装站,  检查  域名/path 也不能看到 400 bad request. 而是显示下面这样的错误, 说这个网址不安全.

浏览器访问域名报ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Firefox站点信息也提示该域名连接不安全

我们上一步不是明明申请域名的证书成功了的吗? 而且节点都测试过, 是通的. 

按以往的经验, CDN通道打通了就可以愉快地嫖 Cloudflarer 的 CDN 的 Websocket 通道了呀. 这是怎么回事呢?

感谢 Uncle LUO老羅叔叔的數字生活指南 提供的灵感. 接下来我们要解决证书的问题.


设置 SSL/TLS Edge Certificates 边缘证书

打开 Cloudflare 的 SSL/TLS 设置

进入Cloudflare的SSL/TLS,打开Edge Certificates 

边缘证书页展开后能看到激活按钮

滚动到下面一点, 展开. 可以看到为了验证你对域名有控制权, 需要添加这几个 TXT 类型的 DNS 设置

下图中, 1 和 2 是一组, 一个是 name, 一个是 value; 3 和 4 是另一组.

验证域名控制权需要添加这几条TXT记录

切换到 Cloudns 的 DNS 设置页面

添加 TXT 类型的 DNS 记录

注意, 主机 这一栏, 你需要填写的其实只是前缀 _acme-challenge , 后面那个 .xxx.cloudns.yyy 是不用填写的.

把TXT记录填到ClouDNS,主机只填_acme-challenge前缀

同样的, 再添加一个 TXT 记录.

同样再添加第二条TXT记录

需要耐心等一段时间, 直到 Cloudflare 验证完成. 变成绿色的 Active 像下面这样.

等Cloudflare验证完成,Status变成绿色的Active

然后你的节点就可以正常使用了.

你用浏览器检查 域名 能正常打开伪装站,  检查  域名/path 能看到 400 bad request. 


如果还不行的话, 检查 SSL/TLS 加密模式为 完全 encryption mode is Full
SSL/TLS加密模式设为完全,使用自签名证书
用我的方案申请证书时,这里要设成Full

* 要不要设置为 "完全/FULL" 和你得到证书的方式有关, 如果你是用的我的方案, 那么这里要设置为 完全/FULL


完


========

后记

后缀 不要选 .cloudns.cl (我试过, 添加不了 Cloudflare)
后缀选.cloudns.cl时,Cloudflare提示必须填根域名

感谢网友的分享! 本文整个方案并非我原创, 我只是尽量写成一篇流畅的教程而已.

评论里指出CF代理解析要加A或AAAA记录并打开小云朵

========

同理

https://desec.io/ 也可以来申请一个. 完全一样的流程.

不过在添加 NS 记录时, 尾巴后面多加一个 .

在添加 TXT 记录时, 要求用双引号把那一大串包起来.

desec.io同样流程,NS记录结尾多一个点,TXT要用双引号包住


========

Update

还有一种让Cloudflare的解析生效的方法

例如, 我要设置 pastebin.icdyct.cloudns.asia 在Cloudflare上的解析+CDN生效, 这样才可以将其设置为我的 worker 的域名.

在Cloudns中设置 pastebin.icdyct.cloudns.asia 的 NS 解析为 Cloudflare 的namesever:

另一种办法:在ClouDNS把子域的NS指向Cloudflare


再按 Cloudflare 的边缘证书的要求设置 TXT 解析

再按边缘证书的要求,把TXT解析设到ClouDNS

https://pastebin.icdyct.cloudns.asia/tieludasiliqiuweiyue 是一个网络记事本. 你可以来试试.


评论
  1. 同样的二级域名, https://desec.io/ 也可以来申请一个.

    回复删除
  2. 20240315,现在只有 dns-dynamic.net / cloudns.be / cloudns.ch 这三个免费二级域名了,这三个试了都绑定不了 clouflare

    回复删除
  3. 请问博主,用worker的自定义域名访问worker,和给worker设置routes访问,有什么区别?

    回复删除
发表评论