月度归档:一月 2025

cloudflare的妙用

对于个人玩家,cloudflare免费计划有一些有趣的功能。如:免费的DNS托管,流量代理。基于这两项衍生出来的自动生成TLS证书,服务非标端口转发,Worker反向代理等。其中最有用的还是流量代理。之前一直是使用阿里云的ECS+备案来搭建本站的。在发现cloudflare的代理能力之后,果断将阿里云ECS停止续费了。实际也是续费到后面,价格越来越高,对个人用户而言,为了维持公网上面的几乎无访问量的博客,每年几百到一千的续费太奢侈。

将域名托管到cloudflare后,配置流量代理,然后博主本地电信宽带本来就提供公网IP,直接申购域名+家用HomeServer+cloudflare就能搭建一个标准的WEB服务。在本来就24小时开机的HomeServer基础上,实现了免费博客托管。现在本站即托管在家用服务器了。

用了一段时间发现,cloudflare的IP会被connection reset/refused,这应该由于某些已知的不可抗原因导致的。进一步发现cloudflare的几千个IP地址都是同样可以用来做代理转发流量的,只是cloudflare的免费计划没有提供自主选择IP的方式,需要一些hack手段。比如:如果是桌面操作系统主机,则可以自行配置Hosts文件指定IP地址(官网也提供了可用IP列表),当前本站即处于时而能访问时而不能访问的边缘。这对我个人写博客看博客而言,没有什么影响,对外部客户端访问本站有很大问题,远不如备案+ECS稳定,网速也差得远,因为cloudflare的代理IP都在国外,在国内访问本站,相当于流量从本地转发到国外,再绕回来,这样时延都是秒级,体验很差,但是能免费托管,还要啥自行车:)

有时候,由于出海需要,也要申请国外的VPS,这样可以用cloudflare的庞大IP地址集的代理能力做一个稳定的流量通道。要达成自主选择IP地址的目的,一个可以指定解析结果的DNS服务器就必不可少,在内网,可以使用dnsmasq+dhcp指定内网设备的解析结果。但是经常我们在外面,需要使用移动网络,这个时候,就没法访问内部的dns服务,同样,是桌面系统还好,能指定,手机呢?android系统有个配置私密dns的能力,必须是支持DoT或者DoH的dns服务器,并且该服务的地址要有自己的域名。查询chatgpt,给出了dnsmasq+stunnel的方案,进一步问到了把这个服务做成docker镜像的Dockerfile写法。按照给出的配置和打包流程,做成了镜像放到dockerhub上面了:链接

上面提供了一些思路和大致的玩法,很多东西没法描述到太细,有了一个稳定的流量代理,大家可以充分发挥想象去做一些有趣的访问应用。最后给出一个HomeServer+cloudflare+外部VPS的连接示意图:

全连接示意图

| 1 分2 分3 分4 分5 分 (5.00- 1票) Loading ... Loading ... | 归档目录:建站技术, 移动互联, 软件应用 | 标签: , , , , |
返回顶部