关于我把 FRP Server 迁移到 Docker 之后,fail2ban 失效的事


之前配置好了给 frps 的 fail2ban 过滤策略(jail.d 和 filter.d)

用得好好的,后来把 frps 放到 docker 里运行,然后把 /var/log 挂载到容器里

本以为万事大吉了,结果发现 fail2ban 似乎罢工了

然而,用 fail2ban-regex 进行测试,发现是可以匹配到 HOST 记录的,

尝试过 fail2ban-client restart 等各种命令、各种配置

甚至重写了 jail.d/frps_ssh.conf 也没有效果

我一直怀疑是不是因为 docker 里往外写导致的 fail2ban 不能正常工作

最后发现是时区问题:

Host 是 Asia/Shanghai 时区,然而 frps 容器里是 UTC+0 的时区,所以输出的 frps.log 时间跟 Host 匹配不上,fail2ban 工作异常。

最后,我把 Host 的 timezone 复制了一份到容器里,解决了这个问题

docker cp /etc/localtime 925df4109f43:/etc/localtime
docker cp -L /usr/share/zoneinfo/Asia/Shanghai 925df4109f43:/usr/share/zoneinfo/Asia/Shanghai

Tips: 925df4109f43 是我容器的 ID ,记得替换成你自己的


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.