# 黑名单

EMQX 为用户提供了黑名单功能,用户可以通过 Dashboard 和 HTTP API 将指定客户端加入黑名单以拒绝该客户端访问,除了客户端标识符以外,还支持直接封禁用户名甚至 IP 地址。

提示

黑名单只适用于少量客户端封禁需求,如果有大量客户端需要认证管理,请使用 认证 功能。

# 通过 Dashboard 配置

  1. EMQX Dashboard (opens new window) 页面,点击左侧导航栏的访问控制 -> 黑名单,在随即打开的页面,单击创建
  2. 在弹出的创建黑名单页面,按照页面提示配置:

image

您可以按照以下说明完成相关设置:

  1. 禁用对象:添加禁用,目前支持通过客户端 IDIP 地址用户名添加禁用对象。
  2. 到期时间(可选):设置该规则的到期时间。
  3. 原因(可选):说明为该对象设置黑名单的原因。

# 自动封禁

在黑名单功能的基础上,EMQX 支持自动封禁那些被检测到短时间内频繁登录的客户端,并且在一段时间内拒绝这些客户端的登录,以避免此类客户端过多占用服务器资源而影响其他客户端的正常使用。

需要注意的是,自动封禁功能只封禁客户端标识符,并不封禁用户名和 IP 地址,即该机器只要更换客户端标识符就能够继续登录。

此功能默认关闭,用户可以在 emqx.conf 配置文件中添加如下配置进行开启:

flapping_detect {
  enable = true
  # 客户端最大离线次数
  max_count = 15
  # 检测的时间范围
  window_time = "1m"
  # 封禁的时长
  ban_time = "5m"
}
1
2
3
4
5
6
7
8
9

该配置表示当一个客户端在 1 分钟内累计离线次数达到 15 次时将被封禁 5 分钟。