【Openwrt从入门到放弃】六、cloudns.ch免费域名托管到Cloudflare并结合ddnsv6+ssl安全回家。

By | 2024-12-20

论坛上太多人提问了,Cloudns.ch的免费域名其实还是可以用的,而且做好cname就可以完全不用管了,其他的需要的解析只要在Cloudflare上进行就可以了。后面说几个关键点。实现全链路IPV6回家。

cloudns的免费二级域名注册后托管到Cloudflare的文章有很多了,双向验证后cloudflare会自动对cloudns进行ssl证书的续期。这里不再重复,要实现ddnsv6回家有几个关键点要注意

在cloudns上面做一个cname的通配符解析,指向域名**.cloudns.ch.cdn.cloudflare.net

image

比如你注册的域名是abc.cloudns.ch那么这条cname就是*.abc.cloudns.ch 指向到 abc.cloudns.ch.cdn.cloudflare.net,这样就完成了你的二级域名的托管。以后所有访问都是由cloudflare来帮你解析了,前提是开启了小黄云。注意添加完txt的dns记录后,需要每三个月去cloudflare手动获取新的txt添加到cloudns的域名记录上。以后可能要写一个脚本远程获取txt记录进行添加。这一点cloudflash和chloudns应该都有相应的api接口。

cloudflare上是这样。

image

一共有两条记录,一条通配符,一条原始记录。由于家庭宽带没有IPv4我这里都使用了IPv6的AAAA记录。

然后在你的Openwrt上开启ddns软件,我这里在Openwrt上使用了lucky这个软件。配置两个ddns解析。当然你可以用任意ddns软件比如说ddns-go或者openwrt自带的ddns-scripts,如果如果是用阿里云还需要从第三方单独安装一个ddns-scripts-aliyun.ipk。如果不成功,记得安装ca-certificates这个包。

image

对应cloudflare上的两条记录。

image

为了能访问内网服务器上的web服务,记得在cloudflare上开启ssl。并生成一个15年的证书。添加这个证书在lucky的软件配置上。

image

添加好反向代理。由于一开始我用Haproxy是搞不定cloudflare的转发ssl的x-forwarded-header问题,所以我才换的lucky

image

这时候,你的反向代理可以设置任意三级域名了,比如说可以在lucky上配置反代规则a.abc.cloudns.ch:6443访问nas的web界面。b.abc.cloudns.ch:8888访问homeassistan服务器。如果嫌麻烦,还可以用home.abc.cloudns.ch:6443/nas方法访问nas,home.abc.cloudns.ch:6443/ha 访问homeassistant.这些反代软件都是可以做到的。这样就形成了你访问免费域名的时候———cloudflare通过边缘节点访问你自己家(套用了15年的cloudflare自签名证书)————cloudflare—>cloudns ssl3个月证书(google)自动续签的全链路ssl访问。解决了很多托管到自己家里服务器的免费域名证书问题。全程不会再有任何安全提示。要说唯一的缺点,就是在如果不做优选,国内访问cloudflare的边缘节点还是有些慢。并且如果一但cloudflare不玩了也没办法全免费了。但实际上如果你买了比较便宜的域名,这个逻辑换到阿里云也是一样的,而且还不用这么大费周章的用cloudflare代理访问。只需要在阿里云做ddnsv6的地址,用acme自动化签署3个月的免费证书签署就可以了。甚至如果你有公网动态IP,用ddnsv4的A记录也是一样的。如果你用openwrt的acme来配置,那么记得安装acme之后还要安装

opkg install acme-acmesh-dnsapi 才能使用dns_ali这各参数。

另外为了安全考虑,你还需要在lucky的web服务器上反代配置上设置一下访问规则。把如下地址加入白名单。

cloudflare ipv4

- 103.21.244.0/22
- 103.22.200.0/22
- 103.31.4.0/22
- 104.16.0.0/13
- 104.24.0.0/14
- 108.162.192.0/18
- 131.0.72.0/22
- 141.101.64.0/18
- 162.158.0.0/15
- 172.64.0.0/13
- 173.245.48.0/20
- 188.114.96.0/20
- 190.93.240.0/20
- 197.234.240.0/22
- 198.41.128.0/17

cloudflare ipv6

- 2400:cb00::/32
- 2606:4700::/32
- 2803:f800::/32
- 2405:b500::/32
- 2405:8100::/32
- 2a06:98c0::/29
- 2c0f:f248::/32

前面一篇文章说过Openwrt的IPv6的开启的方法,还没开启的小伙伴翻看前面的文章在Openwrt上开启IPv6。