受限于宝塔面板默认防火墙Firewalld的限制,要想宝塔面板下站点如何只限定CDN的IP节点回源请求的话,最简便有效的办法就是将CDN 的IP节点一个一个的加入到宝塔的【端口规则】里,需要限制哪个端口就在哪个端口下添加
1.修改所有IP为指定IP
我们选择的是443端口,默认宝塔是开放443端口给所有IP的,所以这里我们必须修改443端口规则为“指定IP”,切记切记哦!
2.添加CDN 节点IP地址段
给443添加了一个CloudFlare的IPv4节点IP地址段,意思就是这个103.21.244.0/22地址段的IP都可以回源请求443端口。具体CloudFlare的节点IP可以到这里查看:www.cloudflare-cn.com/ips/
剩下的我们只需要一个一个的把CloudFlare的IPv4节点IP地址段这样添加即可,如果是80端口也是同样的。有人会说这样很麻烦,效率太低不科学,那么我们可以使用宝塔的【导出规则】和【导入规则】来批量的添加,具体步骤很简单,我们可以制作一个导入CloudFlare的IP节点的.json,具体内容如下参考:
43|tcp|443|accept|131.0.72.0/22|131.0.72.0/22|2023-07-10 20:01:07||0|
42|tcp|443|accept|172.64.0.0/13|172.64.0.0/13|2023-07-10 20:00:54||0|
41|tcp|443|accept|104.24.0.0/14|104.24.0.0/14|2023-07-10 20:00:26||0|
40|tcp|443|accept|104.16.0.0/13|104.16.0.0/13|2023-07-10 20:00:12||0|
39|tcp|443|accept|162.158.0.0/15|162.158.0.0/15|2023-07-10 19:59:58||0|
38|tcp|443|accept|198.41.128.0/17|198.41.128.0/17|2023-07-10 19:59:41||0|
37|tcp|443|accept|197.234.240.0/22|197.234.240.0/22|2023-07-10 19:59:14||0|
36|tcp|443|accept|188.114.96.0/20|188.114.96.0/20|2023-07-10 19:58:59||0|
35|tcp|443|accept|190.93.240.0/20|190.93.240.0/20|2023-07-10 19:58:41||0|
34|tcp|443|accept|108.162.192.0/18|108.162.192.0/18|2023-07-10 19:58:25||0|
33|tcp|443|accept|141.101.64.0/18|141.101.64.0/18|2023-07-10 19:58:11||0|
32|tcp|443|accept|103.31.4.0/22|103.31.4.0/22|2023-07-10 19:57:48||0|
31|tcp|443|accept|103.22.200.0/22|103.22.200.0/22|2023-07-10 19:57:30||0|
30|tcp|443|accept|103.21.244.0/22|103.21.244.0/22|2023-07-10 19:57:10||0|
6|tcp|443|accept|173.245.48.0/20|173.245.48.0/20|2023-07-10 19:56:47||0|
这个方法最高效,但需要你非常的细心参考默认导出的规则根据实际来制作,建议大家借助纯文本编辑器EditPlus等在本地编辑好检查无误后再在宝塔面板里【导入规则】即可。
唯一的瑕疵就是需要在每个端口上都这样添加才能实现只限定CDN的IP节点请求这个端口,没办法宝塔这方面没有很便捷的方法了,另外就是这样操作后你在哪个端口限制了,其他IP请求都会被拒绝的,所以一定要仔细核对IP地址段,如果是80端口的还要考虑自己IP的请求哦,别弄完把自己都给屏蔽了,至于自己IP地址段的获取,可以在ipip.net上查询到的,记住是IP地址段,可不是单独一个IP哦!