黑名单
EMQ X 为用户提供了黑名单功能,用户可以通过相关的 HTTP API 将指定客户端加入黑名单以拒绝该客户端访问,除了客户端标识符以外,还支持直接封禁用户名甚至 IP 地址。
相关 HTTP API 的具体使用方法,请参见 HTTP API - 黑名单。
黑名单只适用于少量客户端封禁需求,如果有大量客户端需要认证管理,请使用 认证 功能。
在黑名单功能的基础上,EMQ X 支持自动封禁那些被检测到短时间内频繁登录的客户端,并且在一段时间内拒绝这些客户端的登录,以避免此类客户端过多占用服务器资源而影响其他客户端的正常使用。
需要注意的是,自动封禁功能只封禁客户端标识符,并不封禁用户名和 IP 地址,即该机器只要更换客户端标识符就能够继续登录。
此功能默认关闭,用户可以在 emqx.conf
配置文件中将 enable_flapping_detect
配置项设为 on
以启用此功能。
zone.external.enable_flapping_detect = off
用户可以为此功能调整触发阈值和封禁时长,对应配置项如下:
flapping_detect_policy = 30, 1m, 5m
此配置项的值以 ,
分隔,依次表示客户端离线次数,检测的时间范围以及封禁时长,因此上述默认配置即表示如果客户端在 1 分钟内离线次数达到 30 次,那么该客户端使用的客户端标识符将被封禁 5 分钟。当然你也可以使用其他诸如秒、小时在内的时间单位,关于这部分内容,请参见 配置说明。