You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mosquitto用户强制断开重连测试命令及在线用户IP查询需求

Mosquitto 用户连接管理操作指南

1. 强制断开指定用户的命令

使用Mosquitto官方工具mosquitto_ctrl结合动态安全模块执行断开操作,命令格式如下:

# 本地Broker(通过套接字连接)
mosquitto_ctrl -S dynsec disconnect <username>

# 远程Broker(指定IP和控制端口)
mosquitto_ctrl -h <broker_ip> -p <control_port> dynsec disconnect <username>

注意:需确保Broker已启用动态安全模块(在mosquitto.conf中配置plugin /usr/lib/mosquitto_dynamic_security.so,路径根据系统调整),并允许控制端口或本地套接字访问。

2. 允许用户重新连接的操作

默认情况下,用户被强制断开后可直接重新连接。若之前通过配置限制了用户连接权限,需按以下方式恢复:

动态安全模式

如果曾通过命令禁止用户连接,执行以下命令恢复权限:

mosquitto_ctrl -S dynsec setClient <username> --allow true

静态ACL/配置模式

  1. 打开mosquitto.conf或对应的ACL文件,移除针对该用户的deny规则
  2. 重载Broker配置(无需重启):
kill -HUP $(pidof mosquitto)

3. 查看当前连接用户的IP地址

有两种常用方式:

方式一:通过Broker日志查看

在mosquitto.conf中启用连接日志:

log_type connection

重启Broker后,日志文件(或控制台输出)会显示类似条目:

New connection from 192.168.1.105 on port 1883. Client test_client authenticated as test_user.
直接从日志中提取用户名对应的IP地址。

方式二:订阅系统主题获取

使用mosquitto_sub订阅Broker的系统主题,实时获取连接信息:

mosquitto_sub -t "$SYS/broker/connection/#" -v

输出示例:

$SYS/broker/connection/test_client/ip 192.168.1.105
$SYS/broker/connection/test_client/username test_user

内容的提问来源于stack exchange,提问作者benjamin Hardy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:21:03