
Ich habe mehrere Linux-Computer zu Hause, an der Uni und mein Android-Telefon. Ich hätte gern eine Möglichkeit, jederzeit per SSH auf jeden dieser Computer zuzugreifen, aber sie sind alle hinter unterschiedlichen Netzwerken verborgen und können jederzeit ihre Verbindung verlieren oder ihre externe IP-Adresse ändern.
Idealerweise hätte ich eine Hintergrundanwendung, ähnlich wie Dropbox, die eine Verbindung zu einem externen Dienst mit einer bekannten Adresse aufrechterhält (wieder herstellt). Wenn ich dann per SSH von einem Computer zu einem anderen wechseln möchte, sorgt der Dienst dafür, dass eine Verbindung hergestellt wird. Ich habe einen Raspberry Pi mit einer DynDNS-Adresse und weitergeleiteten Ports, sodass ich den Dienst bei Bedarf selbst ausführen kann. Es ist jedoch wichtig, dass der Datenverkehr nicht über diesen Server läuft, da ich nicht möchte, dass meine beiden Uni-Computer Daten nach Hause und zurück senden, wenn sie nebeneinander stehen.
Gibt es eine Software, die dies kann?
Gibt es alternativ einen kostenlosen VPN-Dienst ähnlich dem alten Hamachi, der auf mehreren Linux- und Android-Computern funktionieren würde? Dann wären sie alle in einem pseudolokalen Netzwerk und könnten sich frei per SSH untereinander verbinden. Soweit ich weiß, gibt es derzeit keine solchen kostenlosen Dienste, was angesichts der Fülle kostenloser Dateisynchronisierungsdienste (Dropbox, Google Drive, Mega usw.) seltsam erscheint.
Antwort1
Nulltierscheint perfekt zu Ihrem Anwendungsfall zu passen:
Sie nennen es „Software Defined Networking“. Es ist eine Art Mischung aus einem VPN und Diensten wie Hamachi. Im Grunde müssen Sie Netzwerke (mit eindeutigen IDs) erstellen können, mit denen Sie Geräte verbinden und autorisieren können. Es ist ein P2P-Netzwerk, kann aber Superknoten verwenden, wenn Ihr Netzwerk keine eingehenden Verbindungen zulässt.
Sie unterstützen derzeit mehrere Betriebssysteme: Linux, FreeBSD, Android, Windows, OSX.
Mit Ausnahme von Android können Sie sich auch mit mehreren Netzwerken gleichzeitig verbinden. Durch die Verbindung mit einem Netzwerk wird in Ihrem Betriebssystem eine virtuelle Netzwerkkarte erstellt.
Sie können auch zeroconf oder etwas Ähnliches verwenden, wenn Sie DNS verwenden möchten.
Es basiert auf UDP und kommt sehr gut mit Netzwerkänderungen zurecht. Ich habe es oft erlebt, als ich mit meinem Handy von WLAN auf LTE und umgekehrt umgestiegen bin.
Antwort2
Sie können die Verwendung von SSH-Tunneling in Betracht ziehen.
Erstellen Sie einige Tunnel von Ihrem RPi-Gerät zu den anderen Geräten, auf die Sie Zugriff benötigen, und Sie können über lokale RPi-Ports per SSH auf sie zugreifen.
Das Problem besteht darin, dass Ihre Verbindung unterbrochen wird, wenn das Gerät neu gestartet wird.