宝塔防火墙插件报错需先清理残留文件:停面板(bt stop),删除 /www/server/panel/plugin/firewall 目录,禁止修改权限,重启面板(bt start)后重装;若仍异常,检查 frpc/nginx 冲突、规则误封端口、selinux 或挂载限制。

插件重装前必须清理残留文件
宝塔防火墙插件报错,尤其是点击后白屏、500错误或“模块加载失败”,大概率不是网络问题,而是插件目录里留了损坏或不兼容的残余文件。宝塔对 /www/server/panel/plugin/firewall/ 下的文件结构和权限极其敏感——哪怕多一个空文件夹、少一个 main.py,都会导致整个插件无法初始化。
- 先停掉面板:
bt stop - 彻底清空插件目录:
rm -rf /www/server/panel/plugin/firewall - 别手欠改权限:
chown或chmod这个目录会直接让插件系统拒绝加载,宝塔要求固定属主为root:root - 删完立刻重启面板:
bt start,再进软件商店重装(不是“更新”,是“安装”)
重装后仍报错:检查 frpc 或 nginx 是否冲突
防火墙插件底层依赖 frpc(用于远程策略同步)和 nginx(部分规则通过 Nginx 模块注入)。如果服务器上已运行其他反向代理、或之前装过 Frp 插件,容易出现端口抢占或配置覆盖。
- 查
frpc是否在跑:ps aux | grep frpc,有就kill掉 - 确认 Nginx 配置没被破坏:
nginx -t,若提示语法错误,说明插件写入时覆盖了关键段落(比如误删了http { ... }外层括号) - 检查
/www/server/nginx/conf/nginx.conf末尾是否残留了插件自动插入的include行,例如include /www/server/panel/plugin/firewall/conf/nginx/*.conf;—— 若对应路径下无实际文件,Nginx 就会启动失败
防火墙启用后网站打不开(ERR_CONNECTION_REFUSED)
这不是插件坏了,而是它把规则“太认真”地执行了。尤其在专业版中,防火墙默认开启“端口阻断”和“CC 防御”,一旦配置不当,连 80/443 都可能被自己封掉。
- 临时关闭防火墙验证:
bt 12→ 选“安全入口重置”,或手动执行/etc/init.d/bt_safe stop - 再开面板,进「安全」→「防火墙」页面,先关掉「CC 攻击防护」和「端口扫描拦截」这两项,保存后观察网站是否恢复
- 如果恢复,说明是规则粒度太细;不要直接删规则,而是在「放行端口」里显式添加
80,443,8888并勾选「永久生效」 - 注意:某些华为云/腾讯云镜像预装了
ufw或firewalld,它们和宝塔防火墙会双重拦截,建议只留一个
日志里反复出现 “Permission denied” 或 “No such file”
这类报错基本指向 SELinux 或磁盘挂载限制。宝塔防火墙需要读写 /www/server/panel/plugin/firewall/logs/ 和 /www/server/panel/data/ 下的策略缓存,而默认 SELinux 策略会禁止 Python 进程写入这些路径。
- 快速验证是否 SELinux 导致:
getenforce返回Enforcing就是它 - 临时关闭测试:
setenforce 0(重启后失效),再试一次启用防火墙 - 若恢复正常,说明需打策略补丁,而非永久关 SELinux;可执行:
ausearch -m avc -ts recent | audit2why查具体拒绝项 - 另一个常见原因是
/www所在分区被挂载为noexec或nosuid,用mount | grep www查看,如有则需重新挂载
include 路径失效,整站突然 502。










