关于Cloudflare的CDN IP穿透的问题屡见不鲜。
以前景の域还在FRP穿透的时期就有遇到类似的问题。
博客是个好东西,总是记下来一些意想不到的事情。这次搭建Bookstack实际查阅后台也同样发现审计显示都是CF的回源IP的问题。
这里先编辑Bookstack网站目录下的.env文件,
添加CF CDN回源IP的列表:
APP_PROXIES="173.245.48.0/20, 103.21.244.0/22, 103.22.200.0/22, 103.31.4.0/22, 141.101.64.0/18, 108.162.192.0/18, 190.93.240.0/20, 188.114.96.0/20, 197.234.240.0/22, 198.41.128.0/17, 162.158.0.0/15, 104.16.0.0/13, 104.24.0.0/14, 172.64.0.0/13, 131.0.72.0/22, 2400:cb00::/32, 2606:4700::/32, 2803:f800::/32, 2405:b500::/32, 2405:8100::/32, 2a06:98c0::/29, 2c0f:f248::/32"
随后,在Nginx目录中存储的网站域名的conf,
Webinoly找#WebinolyCustom区域,
寻找在location部分添加proxy_set_header的相关穿透属性:
location / {
try_files $uri $uri/ /index.php?$query_string;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
然后想办法让Nginx配置文件的http部分引用标头相关的列表,这里可以作为全局模板存储在conf.d目录内。
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;
real_ip_header X-Forwarded-For;
最后重启Nginx,这个时候再去看审计后台就是穿透后的IP信息了,搞定。
剧透警告
话说人工智能是有点厉害,人力合成是比不过机器神经的自动替换。上面这个标头列表还是直接从谷歌的AI拷出来的,虽然不难想象应该是用了什么神经模型自动从CF的IP列表抓取然后逐段加前后缀,这些IP几乎和CF官方完全一致……
虽然我大概还是不会主动使用AI,我也不懂Token啥的。
但是总觉得只是在用搜索引擎就已经不知不觉在用这些玩意的智能技术了。
计算机技术类大概是不可避免AI模型的分析了。