宝塔面板Linux版 - Nginx免费防火墙 undefined 报错解决方法
系统:Alibaba Cloud 3 (OpenAnolis Edition) x86_64(Py3.13.14)
宝塔:v13.0.0
防火墙:Nginx免费防火墙
问题:把宝塔升级到最新V13后,Nginx免费防火墙无法查看日志了,用户IP、类型、URL地址、过滤器 均显示undefined 封锁历史也显示异常,开始时间显示NaN/aN/aN aN:aN:aN,封锁时长显示undefined秒

原因:Nginx 免费防火墙 8.3 是基于 Python 3.8 写的,宝塔面板升级到 13.0.0 后,系统运行环境从 Python 3.8 升级到了 Python 3.13。而 Python 3.13 完全移除了整个 cgi 标准库,导致了 Nginx 免费防火墙 8.3 的日志解析崩溃和日志格式越界报错。
宝塔 Nginx 免费防火墙 8.3 修复补丁:下载与安装
补丁下载地址:https://wwbdi.lanzouu.com/i8Ga743rax7a
安装步骤:
先备份 /www/server/panel/plugin/free_waf 路径下的 free_waf_main.py 与 fail2ban_main.py 文件。
用压缩包里的 free_waf_main.py 与 fail2ban_main.py,替换掉 /www/server/panel/plugin/free_waf 路径下的同名文件。
刷新宝塔面板的 Nginx 免费防火墙页面,确认日志不再显示 undefined,封锁历史和 webshell 查杀结果恢复正常。