2015-12-04 5 views
0

Я пытаюсь реализовать протокол MQTT с использованием RabbitMQ. Я установил сервер RabbitMQ и изменил порт MQTT с 1883 по 80. Я могу публиковать и подписываться на сервер из сети. Но когда я пытаюсь опубликовать или подписаться с использованием внешнего ip, я получаю ошибку «timed out». Кто-нибудь может поделиться, как публиковать или подписываться с использованием внешнего ip?подключение к серверу RabbitMQ с внешним ip

ответ

0

Непонятно, с чем связана ваша топология сети, но я буду предполагать.

Вы используете ваш маклер MQTT на машине, подключенной к частному IP-диапазону (например, 192.168. *), Вы можете подключиться к этому аппарату с другого компьютера в той же сети.

Теперь вы пытаетесь подключиться к компьютеру за пределами этой сети. Ваша частная сеть IP-адресов находится за маршрутизатором, выполняющим NAT. Вам нужно будет включить перенаправление портов на маршрутизаторе, чтобы отправить весь трафик на ваш необходимый порт (в данном случае порт 80) на брокерский компьютер. Как вы это сделаете, это будет зависеть от вашего маршрутизатора.

EDIT: Учитывая новую информацию, то есть 2 возможных варианта:

  1. Ваш экземпляр RabbitMQ только привязка к частной IP-адрес, загляните в файл rabittmq.conf для записи начиная с RABBITMQ_NODE_IP_ADDRESS=. Если у вас есть один комментарий, так что rabbitmq будет по умолчанию привязываться ко всем адресам. Более подробную информацию можно найти здесь: https://www.rabbitmq.com/configure.html

  2. У вас на вашем компьютере включен брандмауэр, который автоматически отключает весь трафик до порта 80 на общедоступном IP-адресе. Я предлагаю, чтобы это тихонько отбрасывало трафик, потому что вы видите таймаут, а не сообщение об отказе от соединения. Вы не сказали, какую ОС используете, поэтому я не могу вносить предложения о том, как изменить правила брандмауэра.

+0

Спасибо за ваш ответ. Брокер MQTT, работающий в системе, включен с использованием частного IP-адреса, а также Public IP. Я могу получить доступ к брокеру в сети с использованием частного IP-адреса. Когда я пытаюсь получить доступ к публичному IP из внешней сети, я получаю сообщение об ошибке. – Avinash

Смежные вопросы