2

我在 Ubuntu Core 18 系统上运行 Mosquitto 2.0.5 snap(版本 511)。我没有对配置进行任何修改,也没有将其他配置传递给 Mosquitto。

在同一系统上,我正在运行一个 .NET 5 应用程序,它使用 MQTTnet 连接到 Mosquitto。我没有传递任何凭据来连接到 Mosquitto。但是,我无法连接到 Mosquitto 2.0.5,之前我可以连接到 Mosquitto 1.6.12。

我确实知道 Mosquitto 2.0 提高了安全性(这也是升级的原因),但升级文档明确指出,在默认配置(无侦听器)中,localhost:1883 上仍然可以进行匿名连接。奇怪的是,当我在 Windows 上运行 Mosquitto 2.0.5 和我的应用程序时,它一切正常,但在 Ubuntu Core(目标系统)上不起作用。

当我尝试建立连接时,Mosquitto 2.0.5 正在记录以下内容:

New connection from 127.0.0.1:57362 on port 1883.
Client <unknown> disconnected, not authorised.

我使用以下 C# 代码(使用 MQTTnet)进行连接:

var factory = new MqttFactory();
var client = factory.CreateMqttClient();
var builder = new MqttClientOptionsBuilder().
            WithTcpServer("localhost", 1883);
client.ConnectAsync(builder.Build(), CancellationToken.None).Wait(MQTTBROKER_TIMEOUT);

我不明白什么,我做错了什么吗?

任何帮助表示赞赏。

编辑:我一直在玩更多,似乎默认情况下在使用 snap 时会加载动态安全插件,但是我在配置文件中没有找到任何关于此的内容。我想因此,身份验证失败。然后下一个问题出现了,在这种情况下,我如何才能找出默认管理员用户及其密码,因为我需要那些能够将组、客户端和角色添加到插件中。

4

1 回答 1

3

因此,看起来 Mosquitto 2.0.2 及更高版本已进行了一些安全更改,只需将其添加到您的 mosquitto.conf 文件中,就像这里提到的那样

listener 1883
allow_anonymous true
于 2021-03-01T05:36:36.727 回答