Я бы хотел, чтобы мой брокер MQTT был доступен за пределами моей домашней сети, но я не очень хочу открывать порт в брандмауэре. И я бы хотел не использовать свой домашний IP.
Довольно удобно иметь незашифрованного открытого брокера дома, но это не сработает, если я собираюсь разоблачить его. Какие еще варианты у меня есть?
Ответы:
У вас есть 3 варианта, если вы не хотите переадресовывать порт.
Но переадресация порта на правильно настроенный (примерно такой же, как у облачного брокера) на самом деле не является риском.
источник
Поскольку брокер является сервером, вы ДОЛЖНЫ открыть хотя бы один порт для подключения клиентов.
Таким образом, ваша проблема становится частным случаем разоблачения услуги в Интернете.
Это было сделано через DMZ, либо через прокси-сервер, либо другим способом обеспечения более строгой аутентификации, чем служба по умолчанию. Если ваш прокси-сервер живет в облаке, это просто расширяет DMZ до облака.
Ваш самый простой подход, вероятно, заключается в усилении защиты вашего брокера (отключении анонимных клиентов) и ограничении тех, кто может подключаться к нему через брандмауэр (разрешите только определенные IP-адреса клиентов, если вы их знаете заранее).
источник
@hardillb дал хороший ответ, но позвольте мне добавить несколько деталей, добавив немного «реального» прикосновения:
Выберите, какой клиент лучше всего вам подходит, и используйте его для внутреннего взаимодействия брокера с публичным MQTT-брокером. Например, ваш клиент C может быть Paho MQTT . Клиент поддерживает SSL / TLS, поэтому ваша безопасность остается на высоком уровне.
Paho MQTT Embedded может быть вашим выбором для внешних устройств.
HiveMQ имеет политику лицензирования с оплатой по факту использования, поэтому вы можете рассмотреть ее с осторожностью. В любом случае, вы можете проверить эту страницу, чтобы получить список доступных облаков и тестирование доступных брокеров MQTT.
источник