Erreichen eines Geräts in meinem LAN über das Internet

Ich habe ein eingebettetes Gerät, das ich über Ethernet IP programmieren kann, wenn es auf demselben Router wie folgt mit dem PC verbunden ist:

geben Sie hier die Bildbeschreibung ein

Ist es möglich, den gesamten Datenverkehr über das Internet zu senden und trotzdem zu programmieren? Um es ein bisschen klarer zu machen, etwas wie:

geben Sie hier die Bildbeschreibung ein

Author: slhck, 2018-11-13

5 answers

Die einfache (und unsichere) Methode

Was Sie suchen, heißt Port Forwarding [1][2].

Nehmen wir zum Beispiel Folgendes an:

  • Ihr programmierbares Gerät arbeitet an Port 22 und hat die IP 192.168.1.5

  • Ihre öffentliche IP ist 122.176.11.55

Dann können Sie in die Einstellung Ihres Routers gehen und einen WAN-Port (z. B. 8022) an 192.168.1.5:22 weiterleiten.

Jetzt können Sie aus der Ferne greifen Sie von überall über das Internet auf das Gerät zu, indem Sie auf 122.176.11.55:8022 anstelle von 192.168.1.5:22 in Ihrer IDE zugreifen.

Beachten Sie, dass, wenn Sie keine statische IP haben, Ihre öffentliche IP jederzeit ändern kann, in diesem Fall sollten Sie überprüfen, dynamische DNS-Dienste.

HINWEIS: wenn Ihr Gerät nicht über eine Authentifizierungsmethode verfügt, wird jemand mit böswilliger Absicht mit ziemlicher Sicherheit im offenen Web darauf zugreifen. Siehe unten für sicher Alternative.

Die sichere (und ehrlich gesagt nicht viel kompliziertere) Methode

Lassen Sie einen PC (oder Raspberry Pi oder ähnliches) mit Ihrem Netzwerk verbunden und greifen Sie stattdessen über etwas Sicheres wie SSH remote auf zu und programmieren Sie Ihr Gerät über LAN.
Dies hat auch den zusätzlichen Vorteil, dass es funktioniert, auch wenn Ihr Gerät kein TCP oder UDP verwendet:)

Ein bisschen langweilig, ja. Aber sicher.

 53
Author: undo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-13 10:42:40

Die einzige richtige Antwort kann " VPN " sein.

Die einfache Verwendung von IPv6 würde "funktionieren" (vorausgesetzt, der Router ist nicht für die Firewall des Geräts konfiguriert und alle ISP -, Geräte-und Laptop-Unterstützung IPv6), aber es ist eine schreckliche Idee aus dem gleichen Grund Portweiterleitung ist.

Anders als durch die bekannte IPv6-Propaganda gefördert, wollen Sie eigentlich nicht jemals eines der Geräte in Ihrem LAN eindeutig identifizierbar oder sogar aus dem Internet zugänglich sein. Nein, das ist nicht eine gute Sache.

Portweiterleitung würde mit gutem alten IPv4" funktionieren", aber es macht das Gerät nicht nur für Sie, sondern für alle zugänglich. Niemand weiß es, also ist das kein problem, oder?
Nun, es gibt eine Armee von automatisierten Port-Scannern, die rund um die Uhr laufen und zufällige Adressen/Ports scannen, in der Hoffnung, dass irgendetwas, irgendwo antworten könnte, also im Allgemeinen mit jedem Gerät, das auf eine externe Anfrage antwortet Online ist nicht optimal. Wenn ein Gerät glücklich sich selbst haben programmiert nach dem, was über das Netzwerk hereinkommt, ist das ein Rezept für Desaster.
Das Obige gilt im Prinzip auch für VPN, aber es ist so ziemlich so gut, wie Sie bekommen können, wenn Sie Zugriff wünschen. Die einzige wirklich sichere Sache ist überhaupt keine Internetverbindung, was aus offensichtlichen Gründen keine praktische Option ist. Die nächste sicherste Sache zu "kein Internet" ist VPN. Genau ein Port auf genau einem Gerät (na ja, es kommt darauf an, bis zu drei Ports), VPN und sonst nichts , port-an das Internet weitergeleitet.

Mit VPN können Sie-aber sonst niemand-über das Internet auf ein Gerät in Ihrem LAN zugreifen als wären Sie im selben LAN (wenn auch etwas langsamer). Es verhindert unbefugten Zugriff, bietet Vertraulichkeit und Datenintegrität.

Praktisch jeder No-Shit-Router unterstützt mindestens eine Art VPN aus der Box. Unglücklicherweise kann es sich je nachdem, über welches Routermodell Sie verfügen, um einen schlechten VPN-Geschmack handeln oder um schlecht dokumentierte Konfiguration Remotecomputer. Trotz des möglichen Stresses, herauszufinden, wie man es konfiguriert-wenn Sie nichts Besseres haben, ist das bei weitem die beste Option!
Die meisten gängigen NAS-Boxen unterstützen zwei oder drei No-Suck - Methoden von VPN, und jeder $20 kreditkartengroße 3-Watt-Computer kann einen VPN-Server ausführen, kein Problem. Sogar viele moderne Mobiltelefone unterstützen VPN, ohne zusätzliche Software installieren zu müssen, sodass Sie sogar auf Ihr Heimnetzwerk zugreifen können, wenn Sie das mobile Internet Ihres Telefons verwenden (über private hotspot, auch).

Zum Beispiel ist L2TP/IPSec vielleicht nicht die beste Wahl, aber es ist zu 99% gut und dauert eine Minute, um es auf meiner Diskstation und auf meinem Samsung-Handy einzurichten. Eine weitere Minute, wenn mein Windows-Laptop es auch verwenden soll (unabhängig vom Telefon). Keine zusätzliche Software benötigt.
OpenVPN dauert etwa 3-5 Minuten, da Sie die Client-Software auf dem Laptop herunterladen und installieren müssen. Aber im größeren Bild, ein 5 min Setup zählt als" Null", im Vergleich zu sein völlig unsicher.

 11
Author: Damon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-13 16:54:41

Hosten Sie ein VPN entweder in einer Router / Security Gateway Appliance oder in einer anderen Box mit Portweiterleitung an diese Box. Wenn Sie remote arbeiten möchten, stellen Sie eine Verbindung zum VPN her und Sie sehen das eingebettete Gerät wie in einem lokalen Netzwerk. Es wäre wahrscheinlich eine gute Idee, das eingebettete Gerät in einem isolierten Subnetz zu platzieren, um dabei zu helfen, Angriffe auf Ihr Hauptnetz zu verhindern, wenn das VPN oder das eingebettete Gerät kompromittiert ist.

 2
Author: Michael P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-13 16:36:03

Machen Sie Windows-PC ohne IDE in einen Linux-PC in einer einigermaßen sicheren Konfiguration mit sshd läuft. Port Forward von Ihrem Router an den SSH-Port auf dem Linux-Rechner. Verwenden Sie SSH-Tunnel, um eine Verbindung zur IP des eingebetteten Geräts herzustellen. Wenn Sie dann auf Ihrem Remote-Computer mit einer IDE programmieren, stellen Sie anstelle der LAN-IP eine Verbindung zu localhost her.

Das Abhören im Internet mit einem gehärteten Dienst wie SSH ist einigermaßen sicher. Hören direkt im Internet mit Entwicklung alles, was ist eine fabelhaft schlechte Idee. SSH ist ein gatekeeper. Wenn Sie sicherstellen, dass der Hostschlüssel überprüft wird, schützt er absolut vor MITM. Es verwendet gute Kryptographie. Das Tunneling-Setup beinhaltet kein Routing oder Bridging, sondern sieht so aus, als ob Sie direkt von der SSHD-Maschine aus eine Verbindung herstellen. Dies ist wesentlich einfacher richtig einzurichten.

 1
Author: trognanders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-14 07:52:20

Ich bin kürzlich auf eine bessere Lösung für den persönlichen Fernzugriff gestoßen. Lassen Sie uns zuerst den Umfang des Problems besprechen. Es gibt drei Probleme, die ins Spiel kommen: die nat, die IP-Adresse und die Sicherheit. In den häufigen Fällen, in denen Sie beispielsweise einen SSH-oder Webserver in einem Heimnetzwerk ausführen möchten, ist der traditionelle Ansatz die Portweiterleitung sowie dynamische DNS-und branchenübliche Best Practices für die Sicherheit. Dies hat Nachteile für Ihren Fall, da Ihr Gerät keinen Standard hat Sicherheit. Dies kann durch die Verwendung der ssh-Portweiterleitung gemildert werden, anstatt Ihr Gerät für das Internet zu öffnen, aber Sie müssen sich immer noch mit nat-Traversal befassen, da Ihr Gerät (und der SSH-Server auf Ihrem Raspberry Pi, den Sie gerade einrichten möchten) keine öffentlich erreichbare IP-Adresse hat und die IP-Adresse Ihres Routers sich ändern kann (vorausgesetzt, es gibt nur einen Nat zwischen Ihnen und dem Internet) Sie müssten immer noch die Portweiterleitung einrichten (oder im Falle mehrerer Router, Portweiterleitung) und dynamisches DNS, sodass Sie weiterhin Ihren SSH-Server erreichen können.

Es gibt jedoch eine einfachere Lösung, und ob Sie es glauben oder nicht, ist tor versteckte Dienste. tor Hidden Services fungieren grundsätzlich als Port Forward, verarbeiten jedoch automatisch Nat-Traversal und haben keine sich ändernde Adresse, sodass kein dynamisches DNS benötigt wird. Es gibt natürlich Probleme mit der Onion-Adresse, die schwer zu merken sind, aber wenn Sie der einzige Benutzer sind, können Sie sie in eine Ihrer Projektdateien schreiben. Ich würde empfehlen Sie immer noch, dies mit einem SSH-Server zu analysieren, um die Authentifizierung bereitzustellen, aber Sie können entscheiden, dass die lange Onion-Adresse ausreicht. Auch tor versteckte Dienste bieten die Verschlüsselung des gesamten Links mit Ausnahme des letzten Hop, so dass der einzige Weg, um besser zu werden, ist Ende-zu-Ende-Verschlüsselung, aber das würde von dem Gerät abhängen, das Sie programmieren.

 -1
Author: hildred,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-13 19:58:17