Contact Information
GitHub: zhudaguaneren
1Panel Version
v2.2.5
Problem Description
工具箱 Fail2ban 页面用 systemd fail2ban.service 是否 active 作为 isActive。
前端 frontend/src/views/toolbox/fail2ban/index.vue 在 !form.isActive 时禁用白名单/黑名单按钮。
当 fail2ban-server 由其他进程管理器拉起(例如 1Panel 进程守护 Supervisor),或 systemd 显示 inactive 但 fail2ban-client ping 仍返回 pong 时,页面会显示「已停止」,黑白名单无法设置。实际 jail 仍在工作。
相关代码:
agent/utils/toolbox/fail2ban.go Status() 只调用 controller.CheckActive("fail2ban.service")
agent/app/service/fail2ban.go LoadBaseInfo() 把该值传给前端
Steps to Reproduce
- 安装并启用 Fail2ban
- 停止/禁用 systemd 的 fail2ban.service(不结束 fail2ban-server,或改由其他进程管理器启动)
- 确认
fail2ban-client ping 返回 Server replied: pong
- 打开 1Panel -> 工具箱 -> Fail2ban
- 页面显示已停止,白名单/黑名单按钮灰色不可点
The expected correct result
只要 fail2ban-client ping 成功,就应把 isActive 视为 true,允许查看/设置黑白名单。
不建议把 start/stop 改成接管 Supervisor;启停仍走 systemd 即可。
Related log output
fail2ban-client ping
Server replied: pong
systemctl is-active fail2ban
inactive # 或 active(exited),取决于是否有兼容层
# 1Panel Fail2ban 页:显示已停止,白名单/黑名单按钮 disabled
Additional Information
建议小补丁(仅改 Status 探测,不改启停实现):
在 agent/utils/toolbox/fail2ban.go 的 Status() 中,当 systemd 不是 active 时,再用 fail2ban-client ping 判断进程是否存活。若返回 pong,则 isActive=true。
我可以随后提交对应 PR。
Contact Information
GitHub: zhudaguaneren
1Panel Version
v2.2.5
Problem Description
工具箱 Fail2ban 页面用 systemd
fail2ban.service是否 active 作为isActive。前端
frontend/src/views/toolbox/fail2ban/index.vue在!form.isActive时禁用白名单/黑名单按钮。当 fail2ban-server 由其他进程管理器拉起(例如 1Panel 进程守护 Supervisor),或 systemd 显示 inactive 但
fail2ban-client ping仍返回 pong 时,页面会显示「已停止」,黑白名单无法设置。实际 jail 仍在工作。相关代码:
agent/utils/toolbox/fail2ban.goStatus()只调用controller.CheckActive("fail2ban.service")agent/app/service/fail2ban.goLoadBaseInfo()把该值传给前端Steps to Reproduce
fail2ban-client ping返回Server replied: pongThe expected correct result
只要
fail2ban-client ping成功,就应把isActive视为 true,允许查看/设置黑白名单。不建议把 start/stop 改成接管 Supervisor;启停仍走 systemd 即可。
Related log output
Additional Information
建议小补丁(仅改 Status 探测,不改启停实现):
在
agent/utils/toolbox/fail2ban.go的Status()中,当 systemd 不是 active 时,再用fail2ban-client ping判断进程是否存活。若返回 pong,则isActive=true。我可以随后提交对应 PR。