Вам необходимо реализовать схему, в которой ваши RPi являются клиентами вашего сервера.
Что вам действительно нужно - это либо статический IP в вашем доме / офисе, либо любой дешевый VPS или DDNS (сервис динамического DNS). Таким образом, когда вы отправляете RPi своим клиентам, настройте их все на автоматическую настройку IP через DHCP и добавьте для запуска команду, которая подключается к вашему серверу через SSH (предпочтительно с использованием аутентификации с открытым ключом) с настройкой обратного SSH. Таким образом, вы можете подключиться к любому вашему RPis через обратный порт на вашем собственном сервере. Независимо от того, где находятся ваши RPi, вы всегда сможете получить к ним доступ (конечно, если они не находятся за профессиональными брандмауэрами, которые ограничивают исходящие соединения из локальной сети без аутентификации.)
Как я могу установить статический IP-адрес на моем устройстве IoT и иметь его, если он работает в любой сети автоматически
Я создаю домашнее IoT-устройство и хочу, чтобы его можно было доставить любому, кто ранее установил статический IP-адрес, и все, что ему нужно будет сделать, это подключиться к Интернету и быть готовым к работе. Я буду запускать сервер для локального мониторинга каждого робота, поэтому я решил установить статический IP-адрес для каждого RPi, и после доставки клиенту им просто нужно будет установить свой RPi в своей сети и выполнить переадресацию портов. Затем они загружали приложение и давали команды роботу (я использую их регистрационную информацию, чтобы узнать, какой RPi нужно контролировать). Проблема в том, что если IP-адрес изменится, я потеряю связь с этим удаленным устройством. Другими словами, есть ли способ подключить мой локальный сервер ко всем удаленным устройствам?
У меня очень ограниченный опыт работы с сетями, я взломал свой путь и, возможно, я смотрю на это неправильно. Любая помощь очень ценится!
3 ответа на вопрос
Внешний IPv4 домашней сети находится под контролем их интернет-провайдера и может измениться в любое время, если он динамический, каковым является большинство жилых интернет-соединений.
Существует несколько поставщиков «Динамического DNS» (например, NoIP), которые позволят вам создать учетную запись, выбрать имя домена DNS из списка, а затем разрешить «Динамическому клиенту обновления» подключаться к нему и обновлять запись DNS., Ваше устройство IoT должно было бы запустить этот клиент.
Эти провайдеры обычно имеют бесплатный уровень, предлагающий одно или два имени бесплатно, требуя от вас платить, если вы хотите больше имен. Честно говоря, это не очень масштабируемо для более чем нескольких устройств.
Если это большое развертывание устройств, то, если вы хотите, чтобы ваши устройства действительно работали по принципу «включай и работай», правильнее всего было бы спроектировать свои устройства таким образом, чтобы они инициировали подключение к центральному серверу, а не полагались на сервер, подключающийся к ним, и переместите свой сервер на нерезидентный хостинг или облачный провайдер VPS, такой как Amazon, Azure и т. д.
Вот обновление на случай, если у кого-то возникнет такая же проблема. В соответствии с рекомендациями RPis настраиваются как клиенты. В итоге я использовал пакет узла ip для обновления ip каждого робота в моей базе данных. Затем каждый клиент извлекает IP-адрес из БД для подключения.
Вот фрагмент моего кода. Сервер запускается при загрузке .
var ip = require('ip'); var mongo = require('mongodb') var MongoClient = mongo.MongoClient var url = 'your_url' var name = "example" function updateIP() { // update ip if need be var my_ip = ip.address() console.log(my_ip) MongoClient.connect(url, function(err, db){ console.log(err) var robots = db.collection('robots') robots.findAndModify(, [['name', 1]], {$set: }, ) }) }
Похожие вопросы
-
3
Может ли существующее шифрование беспроводной сети реально защитить сеть?
-
5
Существуют ли беспроводные маршрутизаторы, которые позволяют контролировать и регулировать пропускну...
-
5
Поделитесь XP сетевым подключением без перезагрузки?
-
-
5
Как мне сказать Windows использовать 802.11 вместо 3G?
-
6
Какие домашние модемы и другое сетевое оборудование для надежности?
-
12
Какие маршрутизаторы вы предпочитаете для DD-WRT или OpenWRT?
-
10
USB-адаптер Wi-Fi не работает в Windows Vista
-
2
Каковы проблемы безопасности компьютера, подключенного напрямую к модему?
-
2
Почему мой Macbook не находит мою беспроводную сеть?
-
2
Как я могу настроить свою беспроводную сеть для максимальной безопасности?