WordPress 登录页面防暴力破解完整教程:Limit Login Attempts 插件配置完整指南

你的 WordPress 登录页,现在正在被试密码

如果你的网站已经上线超过一个月,打开你安装了 Limit Login Attempts Reloaded 的网站后台,点进 Logs(日志)看一眼,你大概率会看到几十甚至几百条被拦截的暴力破解记录。

这不是夸张,这是外贸 WordPress 站的日常。

如果你还不会安装 WordPress 可以参考:WordPress 完整安装教程

暴力破解的工作方式:

自动化机器人程序不停地向 yourdomain.com/wp-login.php 发送登录请求,每次试一对用户名 + 密码的组合,一秒钟可以试几十次。程序里预设了常见的弱密码字典(admin/123456admin/passwordadmin/admin123……)。

由于 WordPress 默认允许无限次登录尝试,如果没有任何防护措施,这些程序理论上可以一直试下去,直到碰巧试对为止。

WordPress 默认允许无限次登录尝试,这带来了一个漏洞:密码可以通过暴力破解方式轻易破解。

一旦被破解,攻击者可以:植入恶意代码、发送垃圾邮件、删除你的内容、偷取客户数据、把你的服务器变成 DDoS 攻击的跳板。

当然了,这个漏洞有一个简单的修复方案——限制每个 IP 的登录尝试次数。

如果你想隐藏自己 WordPress 网站的默认后台,可以参考:WPS Hide Login 插件:隐藏 WordPress 后台登录地址,提升网站安全性

为什么 WordPress 不自带这个防护?

这个问题很合理。答案是:WordPress 作为一个通用平台,把安全加固的决策权交给站长,而不是强制设置默认限制(因为过于严格的默认设置可能在某些合理场景下造成误伤)。

所以,这个防护需要你主动开启。

第一步:安装 Limit Login Attempts Reloaded

Limit Login Attempts Reloaded 通过限制允许的登录尝试次数来阻止暴力攻击,保护 wp-login.php、XMLRPC、WooCommerce 登录页面以及自定义登录表单,已被超过 100 万个网站信赖使用。

安装步骤:

  1. WordPress 后台 → 插件 → 安装插件
  2. 搜索框输入:Limit Login Attempts Reloaded
  3. 找到作者为 WPChef.、安装量 100 万+ 的版本
  4. 点击立即安装启用

⚠️ 搜索结果里有多个名字相似的插件(原版「Limit Login Attempts」已停止维护)。请确认安装的是带有「Reloaded」字样的版本,这才是目前仍在维护的版本。

插件下载地址:https://wordpress.org/plugins/limit-login-attempts-reloaded/

wordpress limit login attempts brute force protection 1

激活后在哪里找到设置?

WordPress 后台左侧菜单 → Limit Login AttemptsSettings(设置)

wordpress limit login attempts brute force protection 2

第二步:完整参数配置说明

进入 Settings → Limit Login Attempts → Settings(设置) 标签页,逐项配置。

大多数情况下,默认设置对网站已经够用,如果没有特别想法可以保持默认。 但了解每个参数的含义,能让你根据自己的安全需求做出更好的判断。

Local App(本地应用设置)——核心参数

这是影响实际防护效果最重要的区块。

Lockout(锁定规则)

Allowed Retries:  4    次 → 超过 4 次错误后触发锁定
Lockout Duration: 20   分钟 → 第一次锁定持续 20 分钟
Max Lockouts:     4    次 → 累计 4 次锁定后触发长期封禁
Long Lockout Duration: 24 小时 → 长期封禁持续 24 小时
Reset Retries:    12   小时 → 12 小时内无错误则重置计数

推荐参数设置(外贸站主优化版):

参数默认值推荐值原因
Allowed Retries43对真实用户足够,对机器人更严
Lockout Duration20 分钟30 分钟增加攻击成本
Max Lockouts43缩短到达长期封禁的路径
Long Lockout Duration24 小时72 小时让持续攻击者付出更高代价
Reset Retries12 小时12 小时保持默认即可
wordpress limit login attempts brute force protection 3

General(常规设置)

GDPR Compliance(GDPR 合规)

勾选后,登录页面会显示一行小字告知用户「继续操作即表示您理解并同意您的 IP 地址和浏览器信息可能会被安装在本网站上的安全插件处理。」,满足欧盟 GDPR 数据收集告知要求。

外贸站主要建议:如果你的站点有欧盟访客,建议勾选

Notify on Lockout(锁定时通知)

选项说明建议
Email address收到通知的邮箱填你常用邮箱
Notify after X lockouts触发多少次锁定后发通知建议设为 3 次(过低容易频繁打扰,过高不及时)
wordpress limit login attempts brute force protection 4

开启 2FA 双重身份验证功能

如果你想你的网站更安全,可以开启2FA双重身份验证 勾选 Enable 2FA

wordpress limit login attempts brute force protection 5

勾选后将转跳 2FA 的设置界面,可根据自己的需求自行设置。

wordpress limit login attempts brute force protection 6

Cloudflare 用户的特殊配置(必读!)

如果你使用了 Cloudflare、Sucuri、Nginx 等代理域名服务,它们会用自己的 IP 替换用户的真实 IP。如果服务器没有正确配置,所有用户会得到相同的 IP 地址。

这是 Cloudflare 用户最容易踩的坑:插件误把所有用户的 IP 都识别为 Cloudflare 的服务器 IP(如 103.21.244.0),导致任何一个人触发锁定,所有人都访问不了登录页。

正确配置步骤:

  1. 进入 Settings → Limit Login Attempts → Settings
  2. 找到 「本地应用」 设置
  3. 把默认的 「REMOTE_ADDR」 改为 「HTTP_CF_CONNECTING_IP」(这是 Cloudflare 传递真实访客 IP 的标头)
  4. 保存设置

⚠️ 修改前提:只有在服务器已经正确配置为信任 Cloudflare IP的情况下,改成 HTTP_CF_CONNECTING_IP 才是安全的。否则恶意用户可以伪造这个标头,绕过 IP 限制。

验证方式:宝塔面板 / aapanel 用户通常服务器已默认信任 Cloudflare IP。如果不确定,可以在 宝塔面板 / aaPanel 的 Nginx 配置里检查是否有 set_real_ip_from 的 Cloudflare IP 段配置。

wordpress limit login attempts brute force protection 7

Allowlist / Blocklist(白名单 / 黑名单)

IP 白名单(Allowlist):

把你自己的常用 IP(如公司固定 IP)加入白名单,确保即使操作失误,你自己也不会被锁定。

查询自己当前 IP 的方法:访问 https://ip.me,复制显示的 IP 地址,粘贴到白名单输入框。

IP 黑名单(Blocklist):

如果日志里有某个 IP 反复攻击,可以手动加入黑名单永久封禁,不再受「尝试次数」的逻辑管控,直接拒绝访问。

wordpress limit login attempts brute force protection 9

第三步:查看锁定日志(监控攻击情况)

设置完成后,进入 Limit Login Attempts → Logs 查看实时拦截记录。

你可以随时访问 Limit Login Attempts → Logs 来监控锁定情况,也可以在这里手动限制特定 IP 地址或将其加入安全列表。

日志里每条记录包含:

  • 被封锁的 IP 地址
  • 尝试登录的用户名
  • 锁定触发时间
  • 剩余封锁时长

日志里常见的几种攻击模式:

日志显示说明
大量不同 IP,同一用户名(如 admin)分布式暴力破解,尝试猜密码
同一 IP,多个不同用户名用户名枚举攻击,先找出有效账号
很多 XMLRPC 来源通过 XMLRPC 接口攻击(WordPress 远程调用漏洞)
锁定后立刻换 IP 继续使用代理池的专业攻击者

看到第四种情况(不断换 IP 的攻击),仅靠 Limit Login Attempts 不够,需要配合 WAF 层面的拦截,见本文最后的「4 层完整安全体系」。

wordpress limit login attempts brute force protection 8

自己被锁定了怎么办?

这是每个人都该提前知道的情况——如果你自己输错了密码,或者 IP 设置有问题,你自己也可能被锁在门外。

方法一:等待锁定期结束

最简单的方法,等设置的锁定时长过去(你设的 30 分钟、24 小时或 72 小时)后自然解锁。

方法二:用不同的 IP 登录

用手机流量(不是 Wi-Fi)登录,或者开手机热点,换一个 IP 地址访问你的后台,可以绕过当前 IP 的封锁。

方法三:通过 FTP / aaPanel 文件管理器手动解锁

如果实在无法等待:

  1. 打开 aaPanel 文件管理器(或 FTP 工具)
  2. 导航到 wp-content/plugins/ 目录
  3. limit-login-attempts-reloaded 这个文件夹重命名为别的(如 limit-login-attempts-reloaded-disabled)相当于禁用插件。
  4. 回到浏览器正常登录 WordPress 后台
  5. 登录成功后,把文件夹名改回来,重新激活插件
  6. 把自己的 IP 加入白名单,以后就不会再有这个问题

方法四:通过 phpMyAdmin 清除锁定记录

aaPanel → phpMyAdmin → 选择 WordPress 数据库 → 执行 SQL:

sql

执行后刷新,锁定记录被清除,可以重新登录。

只靠这一个插件够吗?4 层登录安全体系

Limit Login Attempts Reloaded 是很好的第一道防线,但不是全部。

真正的 WordPress 登录安全应该是 4 层叠加:

第一层:限制登录尝试次数(Limit Login Attempts Reloaded)

✅ 已完成。这是基础层,拦截大多数普通暴力破解。

局限: 对使用大型代理 IP 池轮换攻击的专业攻击者效果有限,因为每个 IP 用完限制就换一个新的。


第二层:强密码 + 双因素认证(2FA)

开启两步验证(2FA)在登录时增加一道额外的验证屏障,通常通过手机设备发送验证码。即使密码被泄露,攻击者也需要用户的设备才能登录。

或者用插件:WP 2FA

可参参考教程:WordPress 双重身份验证 WP 2FA 插件安装与配置教程

配置 2FA 后,即使攻击者猜对了密码,没有你手机上的 Google Authenticator 验证码,也登录不了。密码 + 2FA 的双重保护,把暴力破解的成功概率降到接近零。

第三层:禁用 XMLRPC(关闭攻击入口)

XMLRPC 是 WordPress 的远程调用接口,主要被手机 APP 和第三方客户端使用。很多攻击者专门针对 XMLRPC 发动攻击,因为它可以绕过某些前端防护直接与 WordPress 核心通信。

Limit Login Attempts Reloaded 在通过 XMLRPC 的登录限制达到后,会返回 403 Forbidden 响应头。

但更彻底的做法是:如果你不需要通过手机 APP 管理 WordPress,直接禁用 XMLRPC。

在 Wordfence → All Options → Brute Force Protection 中,勾选「Disable XML-RPC Authentication」。

或者在 functions.php 子主题文件中加入:

php


第四层:WAF 拦截(网络层过滤)

对于不断换 IP 的高级暴力攻击,最有效的解决方案是 WAF(Web 应用防火墙)——在请求到达 WordPress 之前,在 CDN/代理层面直接过滤掉恶意流量。

免费方案:Cloudflare WAF 基础版

  • Cloudflare Security → WAF 开启,启用 Managed Rules
  • Security → Settings 里开启 Bot Fight Mode(注意 WP Rocket 用户需要排除规则,可参考:WP Rocket 移除未使用 CSS 修复

专属方案:WPHOS Edge™ WAF 针对 WordPress 外贸站专门优化的 WAF 规则,在 CDN 节点层面拦截暴力破解请求,这些恶意请求根本不会到达你的服务器,Limit Login Attempts 甚至不需要出手。

点击查看 WPHOS Edge™ WAF 防护

完整配置速查(一次性检查)

安装插件后对照这张表,确保所有配置都已完成:

Limit Login Attempts Reloaded:

  • 插件已安装启用,版本为最新
  • Allowed Retries:3 次
  • Lockout Duration:30 分钟
  • Max Lockouts:3 次
  • Long Lockout Duration:72 小时
  • GDPR Compliance:✅ 已勾选(外贸站)
  • 锁定通知邮箱:填入常用邮箱
  • 自己的 IP 已加入白名单
  • 用了 Cloudflare → IP 来源改为 HTTP_CF_CONNECTING_IP

配套安全设置:

  • 管理员账号不使用「admin」用户名
  • 管理员密码 16 位以上,含大小写+数字+特殊符号
  • 安装 WP 2FA,给管理员开启双因素认证
  • 不使用手机 APP 管理 WordPress → 禁用 XMLRPC
  • 接入 Cloudflare 或 WPHOS Edge™ WAF

常见问题

我已经装了 Wordfence,还需要 Limit Login Attempts Reloaded 吗?

不需要同时装两个。Wordfence Security 免费版本身包含暴力破解保护(Brute Force Protection)和登录次数限制功能,如果你已经装了 Wordfence 并启用了这些功能,Limit Login Attempts Reloaded 就是重复功能,反而增加了一点额外服务器资源开销。选一个就够了:Wordfence 功能更全面,Limit Login Attempts Reloaded 更轻量专注。

Limit Login Attempts Reloaded 的免费版和付费版(Premium)有什么区别?

付费版(Premium / Micro Cloud)提供云端 IP 智能分析,可以在云端直接中和恶意登录尝试,网站性能不受影响

如果攻击者一直换 IP,这个插件还有用吗?

有限有用。每换一个新 IP 又从零开始计数,Limit Login Attempts 对这类攻击的防护效果大打折扣。针对这类高级攻击,真正有效的是 WAF 层面的拦截( WPHOS Edge™),结合 2FA(即使攻击者猜对密码也进不来)。

这个插件会影响网站速度吗?

几乎不影响。插件只在用户尝试登录时执行逻辑,前端访客浏览页面时完全不触发插件代码,对 PageSpeed 分数没有任何影响。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注