Odoo v8本地IP 127.0.0.1遭auth_brute_force封禁,管理员无法登录求助
解决Odoo v8因auth_brute_force封禁127.0.0.1导致管理员无法登录的问题
先看你提供的关键日志,确认是模块把NGINX转发请求的127.0.0.1判定为恶意IP并封禁了:
2018-03-28 12:18:29,376 10645 DEBUG ******* openerp.modules.registry: Multiprocess signaling check: [Registry - old# 35 new# 35] [Cache - old# 720 new# 720]
2018-03-28 12:18:29,382 10645 WARNING ******* openerp.addons.auth_brute_force.controllers.controllers: Authentication tried from remote '127.0.0.1'. The request has been ignored because the remote has been banned afte...
下面给你几个可落地的解决方案,按恢复速度排序:
方法1:直接从数据库解除127.0.0.1的封禁
这是最快恢复登录的方式,不需要改动模块状态:
- 登录到你的数据库服务器,用PostgreSQL客户端连接Odoo数据库:
把psql -d your_odoo_database_name -U your_db_useryour_odoo_database_name和your_db_user替换成实际的数据库名和用户。 - 查询是否存在127.0.0.1的封禁记录:
SELECT * FROM auth_brute_force_blacklist WHERE ip = '127.0.0.1'; - 如果查到对应记录,执行删除操作:
DELETE FROM auth_brute_force_blacklist WHERE ip = '127.0.0.1'; - 输入
\q退出psql,重启Odoo服务后,管理员就能正常登录了。
方法2:临时禁用auth_brute_force模块
如果方法1没找到对应表(不同版本模块表名可能有差异),可以直接禁用模块:
- 同样连接到数据库,执行以下SQL:
UPDATE ir_module_module SET state = 'uninstalled' WHERE name = 'auth_brute_force'; - 重启Odoo服务,模块会被禁用,你就能顺利登录系统。
- 登录后记得重新安装并配置auth_brute_force(比如把127.0.0.1加入白名单),同时修复NGINX配置避免再次踩坑。
预防措施:修复NGINX和Odoo配置,获取真实客户端IP
问题根源是NGINX转发请求时,Odoo只能拿到127.0.0.1作为客户端IP,导致auth_brute_force把所有请求都当成同一个IP的暴力破解。要彻底解决:
- 修改NGINX配置:在代理Odoo的location块中添加以下头信息:
location / { proxy_pass http://127.0.0.1:8069; 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; # 保留你已有的其他配置 } - 修改Odoo配置文件(比如
openerp-server.conf):proxy_mode = True - 重启NGINX和Odoo服务,这样Odoo就能获取到真实的客户端IP,auth_brute_force会针对实际IP进行封禁,不会再误封127.0.0.1。
内容的提问来源于stack exchange,提问作者Eltjo Reijenga
相关产品推荐
相关产品推荐

