Невозможно установить соединение, потому что целевая машина активно отказала ему в подключении к VerneMQ.

Я установил VerneMQ на виртуальную машину Azure Ubuntu 16.04 и открыл входящий и исходящий порт 1883. VerneMQ настроен на прослушивание порта 1883, разрешены анонимные соединения и запущен vernemq (запуск vernemq).

allow_anonymous = on

listener.tcp.default = 127.0.0.1:1883

Я создал консольное приложение C # на своем ПК с Windows 10 для отправки сообщений брокеру MQTT на виртуальной машине. Я использую пакет NuGet M2Mqtt версии 4.3.0 и открыл 1883 как входящие, так и исходящие сообщения в моем брандмауэре Windows 10.

string broker = "<ip address>";
MqttClient client = new MqttClient(broker);
byte code = client.Connect(Guid.NewGuid().ToString());

Когда я пытаюсь подключиться, я получаю сообщение об ошибке при отказе в подключении.

uPLibrary.Networking.M2Mqtt.Exceptions.MqttConnectionException: 'Исключение при подключении к брокеру'

uPLibrary.Networking.M2Mqtt.Exceptions.MqttConnectionException
HResult = 0x80131500 Сообщение = исключение при подключении к брокеру
Source = M2Mqtt.Net StackTrace: в uPLibrary.Networking.M2Mqtt.MqttClient.Connect (String clientId, String username, String username, String username, String username, String username password, Boolean willRetain, Byte willQosLevel, Boolean willFlag, String willTopic, String willMessage, Boolean cleanSession, UInt16 keepAlivePeriod) в uPLibrary.Networking.M2Mqtt.MqttClient.Connect (String clientId) в MQessage.MTSendRendTM: \ 19 10 12 MQTT \ MQTTSendReceive \ MQTTSendReceive \ MQTT.cs: строка 17 в MQTTSendReceive.Program.Main (String [] args) в C: \ Projects \ 19 10 12 MQTT \ MQTTSendReceive \ MQTTSendReceive \ Program.cs: строка 13

Внутреннее исключение 1: SocketException: соединение не может быть установлено, потому что целевая машина активно отказалась от него: 1883

Я не вижу, где меня заблокировали.


person Terry Mandin    schedule 14.10.2018    source источник


Ответы (1)


Вы сказали VerneMQ прослушивать localhost (127.0.0.1), что означает, что вы сможете подключиться к нему только с машины Ubuntu.

Если вы хотите иметь доступ к нему из другого места, вам нужно указать ему, чтобы он прослушивал все интерфейсы (0.0.0.0)

allow_anonymous = on

listener.tcp.default = 0.0.0.0:1883
person hardillb    schedule 14.10.2018