甘城なつき/Nachoneko💤
828 字
4 分钟
使用Cloudflare origin rule重写端口
在服务器使用caddy反代高位端口没法使用cf代理,使用回源规则来重写端口
在服务器上配置好caddy反代后,因为没有备案只能使用高位端口来访问。但是每次访问都需要使用域名加上端口,非常麻烦。而且因为Cloudflare支持的端口有限,没法使用cf代理,服务器安全性无法得到保障。
Cloudflare支持的端口
| HTTP协议 | HTTPS协议 |
|---|---|
| 80 | 443 |
| 8080 | 2053 |
| 8880 | 2083 |
| 2052 | 2087 |
| 2082 | 2096 |
| 2086 | 8443 |
| 2095 | - |
在不使用80或443的情况下,访问域名就需要加上端口,例如:https://blog.suichyan.top:8443
设置Cloudflare回源规则
使用回源规则重写端口来直接访问域名
- 访问Cloudflare,登录,点击已经加入的域

- 左侧面板找到
规则→概述→Origin Rule→创建规则

- 填写规则名称(随便编一个),选择
自定义筛选表达式

- 配置筛选条件:
- 字段选择
主机名 - 运算符选择
等于 - 值填入反代的主机名,例如:
abc.suichyan.top

- 如果有多个主机名,点击右侧
Or,然后反复按照第四步配置

- 配置完主机名后,转到下面目标端口:
- 选择
重写到... - 端口号填写反代的端口,例如:
54321

- 最后点击部署
部署遇到配置警告?如果提示此规则可能不适用于您的流量,如图:
需要将对应解析的域名勾选代理状态(小黄云图标),然后再次重试部署规则即可。
至此现在您可以直接通过域名访问网站不需要加端口了,例如:https://blog.suichyan.top
防止 Cloudflare 被绕过
但是你可能发现使用原来带上端口的方法仍然能够访问,这涉及到 Web 服务器的工作原理和源站保护的安全问题
这里采用最简单的方式,直接配置源服务器防火墙,反代的端口只允许Cloudflare访问
腾讯云服务器防火墙
因为在使用腾讯云,所以这里例举腾讯云防火墙的配置方法
- 将之前开放的端口规则删除
- 在任意位置编写一个
cloudflare_rules.csv文件
来源,协议,端口,策略,备注173.245.48.0/20,TCP,40000,允许,Cloudflare IPv4节点103.21.244.0/22,TCP,40000,允许,Cloudflare IPv4节点103.22.200.0/22,TCP,40000,允许,Cloudflare IPv4节点103.31.4.0/22,TCP,40000,允许,Cloudflare IPv4节点141.101.64.0/18,TCP,40000,允许,Cloudflare IPv4节点108.162.192.0/18,TCP,40000,允许,Cloudflare IPv4节点190.93.240.0/20,TCP,40000,允许,Cloudflare IPv4节点188.114.96.0/20,TCP,40000,允许,Cloudflare IPv4节点197.234.240.0/22,TCP,40000,允许,Cloudflare IPv4节点198.41.128.0/17,TCP,40000,允许,Cloudflare IPv4节点162.158.0.0/15,TCP,40000,允许,Cloudflare IPv4节点104.16.0.0/13,TCP,40000,允许,Cloudflare IPv4节点104.24.0.0/14,TCP,40000,允许,Cloudflare IPv4节点172.64.0.0/13,TCP,40000,允许,Cloudflare IPv4节点131.0.72.0/22,TCP,40000,允许,Cloudflare IPv4节点2400:cb00::/32,TCP,40000,允许,Cloudflare IPv6节点2606:4700::/32,TCP,40000,允许,Cloudflare IPv6节点2803:f800::/32,TCP,40000,允许,Cloudflare IPv6节点2405:b500::/32,TCP,40000,允许,Cloudflare IPv6节点2405:8100::/32,TCP,40000,允许,Cloudflare IPv6节点2a06:98c0::/29,TCP,40000,允许,Cloudflare IPv6节点2c0f:f248::/32,TCP,40000,允许,Cloudflare IPv6节点- 添加服务器的防火墙规则
- 选择导入规则
- 选择追加导入
- 选择刚才编写的csv文件

- 再次尝试能否带端口访问,如果不能就是配置成功了
完成与验证最后检查能否不带端口访问网页。
如果能,那么恭喜你🎉,网站成功被 Cloudflare 代理并自动重写到了目标端口!
使用Cloudflare origin rule重写端口
https://blog.suichyan.top/posts/cloudflare_originrule/

