Dies mag eine einfache Frage sein, aber da ich widersprüchliche Informationen aus verschiedenen Quellen gelesen habe (welche? Widersprüche im Internet?), Wollte ich wissen, ob ich alles getan habe, was ich tun sollte.
Ich möchte also eine SSH-Verbindung zu meinem RasPi einrichten, damit ich über das Internet darauf zugreifen kann.
- Zunächst aktivierte ich SSH auf dem Pi, indem ich Raspbian mit dem
raspi-config
Tool ausführte . - Dann habe ich den no-ip.com-Client auf meinem Pi installiert, damit ein Hostname auf meine dynamische IP-Adresse zeigt.
- Ich habe meine LAN-IP auf meiner Himbeere mit nachgeschlagen
ifconfig
- Schließlich habe ich im Konfigurationsdienstprogramm meines Routers unter Portweiterleitung die Weiterleitung von Port 22 in TCP und UDP an die lokale IP meines Pi aktiviert.
Danach kann ich nicht mehr über das Internet zu meinem Pi SSH. Es funktioniert, wenn ich versuche, über meine lokale IP-Adresse eine Verbindung in meinem LAN herzustellen, aber nicht über meinen Hostnamen oder meine Internet-IP-Adresse. Ich habe auch versucht, eine Verbindung von einem anderen Standort herzustellen, und es funktioniert nichts.
Meine Frage: Vermisse ich irgendwelche Schritte? Gibt es Konfigurationsdateien, die ich auf meinem Pi bearbeiten sollte, damit alles funktioniert?
iptables -L
auf Ihrem Pi an.Antworten:
Wenn Sie nur vorhaben, eine Verbindung zu Ihrem Raspberry Pi über SSH über das Internet herzustellen, ist ngrok.com möglicherweise am besten für Ihr Problem geeignet.
Es leitet Ihre Ports mit einer Art umgekehrten Tunnel weiter und kann sogar dabei helfen, Firewalls oder Einschränkungen Ihres Internetdienstanbieters zu umgehen. Sie müssen sich (kostenlos) auf der Site registrieren, um den TCP-Verkehr weiterzuleiten.
Ich bin in keiner Weise mit diesem Projekt verbunden. Ich habe es nur verwendet, um genau die gleiche Idee zu verwirklichen (in meinem Fall das Weiterleiten eines OpenVPN-Servers) und bin bisher auf keine Probleme gestoßen.
quelle
Ein Teil Ihres Problems könnte sein, dass der Pi eine dynamische IP vom DHCP auf Ihrem Router verwendet und die von Ihnen eingerichtete Portweiterleitung nicht funktioniert, da sich die lokale IP des Pi geändert hat.
Die einfachste Möglichkeit, dies zu beheben (zumindest, was ich gesehen habe), besteht darin, eine statische IP-Adresse einzurichten. Es ist relativ einfach, solange es Ihnen nichts ausmacht, in einer Konfigurationsdatei herumzuspielen. Hier und hier können Sie etwas ausführlicher lesen . Ich werde auch den einfachen Weg unten erklären:
Stellen Sie eine Verbindung zu Ihrem Pi her, entweder über SSH in Ihrem Heimnetzwerk oder über einen Bildschirm, der funktioniert.
Nimm einen Stift und etwas Papier, du wirst einige Informationen aufschreiben.
Führen Sie den Befehl aus
ifconfig
. Ich weiß, dass Sie es bereits ausgeführt haben, aber wir müssen diesmal ein wenig mehr Informationen über Ihre lokale IP sammeln. Dies zeigt die Router-Informationen an, das gewünschte Bit ist nach eth0 (der Ethernet-Verbindung). . . .Notieren Sie die folgenden Informationen ...
Offensichtlich unterscheiden sich Ihre Informationen von diesem Tutorial. Verwenden Sie daher unbedingt die Informationen aus dem
ifconfig
auf dem Pi ausgeführten Befehl.Jetzt laufen
netstat -nr
oderroute -n
. Wir brauchen:'Gateway'- Adresse - 192.168.1.254
' Ziel'- Adresse - 192.168.1.0
Nachdem wir diese Informationen haben, können wir die Interface-Datei bearbeiten, um die dynamische IP einzurichten. Rennen
sudo nano /etc/network/interfaces
. Es sollte ungefähr so aussehen:Ändern Sie die Zeile:
zu
Dann geben Sie direkt unter dieser Zeile Folgendes ein ( Bitte beachten Sie. Sie benötigen Ihre eigenen Adressen, die wir oben gesammelt haben ). . . .
Grundsätzlich ist der Adressenteil das, was Ihre IP sein soll. Je höher desto besser, desto geringer ist die Wahrscheinlichkeit von IP-Konflikten. netmask - Die 'Mask'-Adresse, die wir zuvor notiert haben.
Netzwerk - Die IP-Adresse des Routers. Dies ist die 'Ziel'-Adresse, die zuvor gefunden wurde. Sie können dies auch von Ihrem Router nehmen, es sollte irgendwo auf der Seite stehen.
broadcast - Die 'Bcast'-Adresse, die wir zuvor notiert haben.
gateway - Dies ist die 'Gateway'-Adresse, die wir zuvor gefunden haben.
Drücken Sie Ctrl+ Ound entweder Enteroder Yund dann Enter. Sobald Sie dies getan haben, drücken Sie Ctrl+ X.
Führen Sie
sudo reboot
und Ihre IP sollte vorhanden sein! Melden Sie sich erneut an und führen Sie denifconfig
Befehl erneut aus. Jetzt sollte er so aussehen:Konfigurieren Sie dann Ihre Portweiterleitung auf Ihre neue statische IP, und alles sollte funktionieren! Viel Glück!
quelle
Das einzige, was Sie anscheinend falsch konfiguriert haben, ist, dass SSH ein reines TCP-Protokoll ist, sodass Sie den UDP-Verkehr nicht an Port 22 weiterleiten müssen.
Nun, warum es nicht zu funktionieren scheint, liegt wahrscheinlich daran, dass Ihr Router kein NAT-Loopback unterstützt . Dies bedeutet, dass die NAT-Regeln (wie die Weiterleitungsregeln) nicht gelten, wenn der Ursprung der Verbindung in Ihrem internen LAN liegt. Nicht bei allen Routern ist diese Funktion aktiviert. Wenn Ihr Router kein NAT-Loopback unterstützt, können Sie unter Verwendung des Domänennamens no-ip.com und in Ihrem LAN keine Verbindung mit Ihrem RPi über SSH herstellen .
Um zu überprüfen, ob Ihre Konfiguration funktioniert, ob Sie ein Smartphone mit einer Datenverbindung (3G, LTE usw.) haben und ob sich ein ssh-Client darauf befindet, versuchen Sie, eine Verbindung zu Ihrem RPi über den Datenplan und nicht über Ihre WLAN-Verbindung herzustellen. Wenn Sie keinen ssh-Client haben und Tethering ausführen dürfen, verwenden Sie Ihr Smartphone zusammen mit einem Ihrer Computer, indem Sie den Stecker für Ihr lokales Netzwerk abziehen und stattdessen den Tethering-Link verwenden.
quelle
Verwenden Sie einen kostenlosen Domainnamen, z. B. " co.cc" oder einen ähnlichen Namen, und " freeDNS" (sie bieten auch eine große Auswahl an Subdomains an), um auf Ihren Router zu verweisen. Ich denke, Sie können auch ein Update-Skript erhalten, falls Ihr Router eine dynamische IP hat.
Wenn das nicht funktioniert, sind vielleicht die Einstellungen für Ihre Portweiterleitung falsch? Was für einen Router hast du?
quelle
Try using a free domain name...
Das hat er getan, das ist der No-IP-Client. Es ist viel einfacher, als sich mit manuellem DNS und Routern herumschlagen zu müssen.Ich habe diese Situation hier in Finnland: rpi ist mit dem mobilen WLAN-Router huawei e5776 verbunden, und ich möchte mit SSH über das Internet eine Verbindung zu rpi herstellen. Bisher ist dies erfolglos. Schließlich weiß ich, dass mein Internetdienstanbieter Zwei-Wege-Verbindungen blockiert mobile Breitbandkunden. Für sie ist der bidirektionale Verkehr ein zusätzlicher Dienst (für den Sie bezahlen müssen), der von meinem ISP als offenes Tor bezeichnet wird. Besuchen Sie also Ihre eigene ISP-Site, um zu prüfen, ob dies der Fall ist.
quelle
Slubbix wies auf ein mögliches Problem hin, dass die lokale IP-Adresse des Raspberry Pi nicht festgelegt ist. Dies würde die Portweiterleitung in Ihrem Router unzuverlässig machen. Standardmäßig ist der Raspberry Pi für die Verwendung von DHCP konfiguriert. Dies bedeutet, dass die IP vom Router vergeben wird. Diese IP ist standardmäßig auch nicht festgelegt.
Eine Lösung für dieses Problem wird bereits von Slubbix angezeigt : die IP des Raspberry Pi zu reparieren .
Meiner Meinung nach hat dies zwei Nachteile: Es gibt keine globale Liste von IPs in Ihrem Netzwerk, die einfach zu pflegen ist, und Sie können Ihren Raspberry Pi nicht in einem anderen Netzwerk verwenden (IP bereits verwendet oder andere Submaske).
Daher schlage ich Folgendes vor: Konfigurieren Sie Ihren Router so, dass der MAC-Adresse Ihres Raspberry Pi eine feste IP zugewiesen wird. Die MAC-Adresse kann mit dem Befehl ermittelt werden
ifconfig
quelle
Die lokale IP-Adresse Ihres Raspberry Pi ist nicht festgelegt, es sei denn, Sie verwenden einen WLAN-Adapter, der die IP-Adresse beibehält. Wenn Sie SSH für das RPI verwenden möchten, können Sie die folgenden Schritte ausführen:
Ich habe diesen Schritt von hier aus gefunden und sie haben für mich gearbeitet
Hier ist eine andere Möglichkeit, SSH zu verwenden:
Ich habe diese Anleitung hier gefunden
quelle
Eine Sache, die mir für mein Internet aufgefallen ist, ist, dass wenn ich meinen Webserver per Portweiterleitung versuche, eine Verbindung mit meiner öffentlichen IP-Adresse herzustellen, dies bedeutet, dass er nicht verfügbar ist, aber wenn ich über mein Telefon oder mein Schulnetzwerk eine Verbindung herstelle Ich kann eine Verbindung herstellen. Sie könnten auch versuchen, auf Google zuzugreifen und "IP" in die Suchleiste einzugeben, die angegebene IP zu kopieren und dann auf Google zu übersetzen und in Ihre IP einzufügen Klicken Sie dann im rechten Fenster auf die blaue IP-Adresse. Daraufhin sollte angezeigt werden, ob Sie Ihren Webserver erfolgreich weitergeleitet haben.
quelle
Um eingehenden Datenverkehr auf dem Standard-SSH-Port (22) zuzulassen, können Sie iptables anweisen, den gesamten TCP-Datenverkehr auf diesem Port zuzulassen.
Zurück zu der obigen Liste, können Sie sehen, dass dies iptables sagt:
-A INPUT
) an, damit wir den eingehenden Datenverkehr untersuchen können-p tcp
) handelt.--dport ssh
) gesendet wird .-j ACCEPT
).Hoffentlich funktioniert das auch für Sie. Vielleicht möchten Sie die FTP-Ports hinzufügen, die zwischen 20 und 21 liegen. Ändern Sie einfach den Wert
ssh
in20
und21
.quelle
Ich bin nicht sicher, ob diese Frage zusätzliche Antworten benötigt, aber es ist ganz einfach.
Installieren Sie OpenSSH oder aktivieren Sie es von
raspi-config
Gehen Sie zu Ihrer Router / Firewalls-Homepage in meinem Fall 192.168.1.1
Suchen Sie nach Portweiterleitungen oder virtuellen Servern und fügen Sie Folgendes hinzu:
Externer Port Start: 1234 Externes Port Ende: 1234
Interner Port Start und Ende 22.
Server IP ist die statische IP Ihres RPi in meinem Fall 192.168.1.50
Sobald alles auf der Routerseite eingerichtet ist, notieren Sie sich Ihre WAN-IP, indem Sie bei Google nach Ihrer IP suchen.
Nun solltest du in der Lage sein, über das Internet auf das Pi zu sshen. In meinem Fall verwende ich ein Chromebook und das Secure Shell Add-On. Ich gebe den Benutzernamen in meinem Fall
pi@mywanip
und Port 1234 ein.Grundsätzlich leitet die Firewall-Regel in Schritt 3 den gesamten Datenverkehr auf dem WAN-IP-Port 1234 an den internen LAN-IP-Port 22 weiter.
quelle
Ich hatte viel Mühe, SSH über das Internet einzurichten, bis ich diese einfache Methode fand:
http://raspctl.com
Einfach registrieren und die Befehle kopieren und einfügen. Möglicherweise müssen Sie eine Konfigurationsdatei bearbeiten, aber das war's. Ich habe es heute getestet und es funktioniert wie Charme. Ich habe es auch mit verschiedenen SSH-Android-Apps versucht.
quelle