Sie müssen ein Schema implementieren, bei dem Ihr RPi Clients für Ihren Server ist.
Was Sie wirklich brauchen - es ist entweder eine statische IP-Adresse bei Ihnen zu Hause / in Ihrem Unternehmen oder ein billiger VPS oder DDNS (dynamischer DNS-Dienst). Wenn Sie Ihr RPi an Ihre Clients senden, legen Sie auf diese Weise fest, dass die IP automatisch über DHCP eingerichtet wird, und fügen Sie einen Befehl hinzu, der eine Verbindung zu Ihrem Server über SSH (vorzugsweise über die Authentifizierung mit öffentlichen Schlüsseln) mit umgekehrter SSH-Einstellung herstellt. Auf diese Weise können Sie eine Verbindung zu einem Ihrer RPis über einen umgekehrten Port auf Ihrem eigenen Server herstellen. Unabhängig davon, wo sich Ihre RPi befinden, können Sie immer darauf zugreifen (natürlich nicht, wenn sie sich nicht hinter professionellen Firewalls befinden, die ausgehende LAN-Verbindungen ohne Authentifizierung einschränken).
Wie kann ich eine statische IP-Adresse auf meinem IoT-Gerät festlegen und bei Bedarf automatisch in einem Netzwerk arbeiten?
Ich baue ein Heim-IoT-Gerät, und ich möchte dieses Gerät an alle Personen versenden können, die zuvor eine statische IP-Adresse festgelegt haben, und alles, was sie tun müssen, ist, eine Verbindung zum Internet herzustellen und gut zu gehen. Ich werde lokal einen Server betreiben, um jeden Roboter zu überwachen, also dachte ich, ich würde für jedes RPi eine statische IP-Adresse festlegen. Sobald sie an den Kunden ausgeliefert wird, müssen sie ihr RPi einfach in ihr Netzwerk laden und Port-Forwarding durchführen. Dann würden sie die App herunterladen und Befehle an den Roboter ausgeben (ich verwende ihre Anmeldeinformationen, um zu wissen, welches RPi gesteuert werden soll). Das Problem ist, dass, wenn sich die IP ändert, ich die Kommunikation zu diesem Remote-Gerät verlieren würde. Gibt es also eine Möglichkeit, meinen lokalen Server mit allen Remote-Geräten zu verbinden?
Ich habe sehr wenig Erfahrung mit dem Networking, ich hacke mich durch und sehe das vielleicht falsch. Jede Hilfe wird sehr geschätzt!
3 Antworten auf die Frage
Das externe IPv4 eines Heimnetzwerks wird von ihrem ISP gesteuert und kann sich jederzeit ändern, wenn es dynamisch ist, wie es bei den meisten privaten Internetverbindungen der Fall ist.
Es gibt mehrere Anbieter von "Dynamic DNS" -Providern (z. B. NoIP), mit denen Sie ein Konto erstellen, einen DNS-Domänennamen aus einer Liste auswählen und einem "Dynamic Update Client" die Verbindung mit ihm erlauben und den DNS-Eintrag aktualisieren können . Ihr IoT-Gerät muss diesen Client ausführen.
Diese Anbieter verfügen in der Regel über eine kostenlose Stufe, in der ein oder zwei Namen kostenlos zur Verfügung stehen, sodass Sie bezahlen müssen, wenn Sie mehr Namen wünschen. Ehrlich gesagt ist dies nicht sehr skalierbar für mehr als ein paar Geräte.
Wenn es sich um eine umfangreiche Bereitstellung von Geräten handelt, ist das Richtige für Sie, wenn Sie möchten, dass Ihre Geräte "plug and play" wirklich "plug and play" sind, die Geräte so zu entwerfen, dass sie die Verbindung zu einem zentralen Server initiieren, anstatt sich auf den Server zu verlassen, der mit ihnen verbunden ist Verschieben Sie Ihren Server zu einem Hosting-Service oder einem VPS-Cloud-Anbieter (z. B. Amazon, Azure usw.).
Hier ist ein Update für den Fall, dass jemand das gleiche Problem hat. Als empfohlen werden RPis als Clients konfiguriert. Am Ende habe ich mit dem node package ip die IP jedes Roboters in meiner Datenbank aktualisiert. Jeder Client zieht dann die IP aus der Datenbank, um eine Verbindung herzustellen.
Hier ist ein Ausschnitt meines Codes. Der Server wird beim Booten ausgelöst .
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: }, ) }) }
Verwandte Probleme
-
3
Kann die vorhandene drahtlose Netzwerkverschlüsselung ein Netzwerk wirklich schützen?
-
5
Gibt es drahtlose Router, die Bandbreitenüberwachung und -drosselung ermöglichen?
-
5
XP-Netzwerkverbindung ohne Neustart freigeben?
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?
-
6
Welche Heimmodems und andere Netzwerkgeräte für Zuverlässigkeit?
-
12
Welche Router bevorzugen Sie für DD-WRT oder OpenWRT?
-
10
Der USB-Wi-Fi-Adapter wird unter Windows Vista nicht aktiviert
-
2
Welche Sicherheitsprobleme hat ein Computer, der direkt an ein Modem angeschlossen ist?
-
2
Warum findet mein Macbook kein drahtloses Netzwerk?
-
2
Wie kann ich mein drahtloses Netzwerk für höchste Sicherheit konfigurieren?