Wie mache ich meinen Raspberry Pi-Webserver öffentlich?

8

Also habe ich endlich einen Webserver in Betrieb genommen, außer er steht nur meinem lokalen Netzwerk zur Verfügung und ich möchte ihn öffentlich machen. Ich habe einen D-Link DIR-615 als Router, die IP-Adresse meines Pi lautet 192.168.0.14 und meine öffentlichen IP-Informationen sehen folgendermaßen aus:

IP Information: xx.xx.xx.xx
ISP:    Xplornet Communications
Organization:   Xplornet Communications
Connection: Broadband
Services:   None Detected
City:   Sherwood Park
Region: Alberta
Country:    Canada

Alles klingt gut, außer ich lebe nicht im Sherwood Park, ich bin ungefähr 2 Stunden entfernt.

Was muss ich tun, um meinen Server öffentlich zu machen?

Mein Router unterstützt Portweiterleitung, virtuellen Server und DMZ. Ich verwende einen Apache HTTP-Server.

Danke, aber das löst mein Problem immer noch nicht. Ich möchte nur einmal eine Verbindung von außen herstellen, dann werde ich DDNS und dergleichen herausfinden, aber im Moment wird keine Verbindung hergestellt, wenn ich meine Xplornet-IP-Adresse eingebe.

Jim Jones
quelle

Antworten:

13

Leiten Sie Port 80 von Ihrem Router an Ihren Pi weiter, und wenn Sie von außerhalb SSH möchten, auch Port 22. Beachten Sie, dass mit SSH von außerhalb jeder, der einsteigen kann, ssh oder auf die anderen Geräte in Ihrem Netzwerk zugreifen kann.

Sobald Sie eingerichtet sind und Ihre IP-Adresse weitgehend gleich bleibt, können Sie Cloudflare verwenden, um eine Domain darauf zu verweisen. Wenn es sich täglich ändert, benötigen Sie einen Dienst wie DynDNS.

George Pearce
quelle
K also habe ich meinen Router so eingestellt, dass er Port 80 mit der IP-Adresse meines Himbeer-Pi oder was auch immer an Port 80 weiterleitet, aber jedes Mal, wenn ich meine externe IP-Adresse eingebe
Jim Jones
Versuchen Sie, darauf zuzugreifen und Port 80 anzugeben, wie xx.xx.xx.xx: 80
George Pearce
@Spencer: Sie können die Portweiterleitung nicht zuverlässig innerhalb Ihres Netzwerks testen, da nicht alle Router "Hairpinning" unterstützen. Versuchen Sie es von außerhalb Ihres LAN zu testen. Verwenden Sie beispielsweise ein Mobiltelefon mit ausgeschaltetem WLAN und verwenden Sie Mobilfunkdaten (3G, HCSD usw.) für eine Nicht-LAN-Verbindung.
RedGrittyBrick
@SpencerKillen Testen Sie von außen? Viele Geräte NAT dies nicht für Sie, wenn Sie im selben LAN wie Ihr Himbeer-Pi sitzen und auf die öffentliche IP Ihres Routers zugreifen. Wenn Sie über Ihr LAN unter 192.168.0.14 auf den Webserver zugreifen können, ist das RPI oder Apache nicht fehlerhaft, aber die Portweiterleitung wird nicht korrekt ausgeführt, oder Ihr Router verfügt auch irgendwo über eine Firewall.
Nr.
Wenn die Portweiterleitung zu umständlich oder gar nicht möglich ist (z. B. wenn Sie sich hinter einem mobilen Router befinden), können Sie einen Relay-Dienst wie PageKite oder Yaler.net ausprobieren (Offenlegung: Ich bin ein Gründer von Yaler)
Tamberg
3

Es gibt ein paar Dinge zu beachten.

Eine davon ist, dass Sie selbst dann, wenn Sie die Portweiterleitung in Ihrem Router korrekt konfiguriert haben, möglicherweise keine Verbindung zu Ihrer öffentlichen IP von zu Hause aus herstellen können, da einige Router nur Verbindungen von "außen" und nicht von "innen" weiterleiten. Ein weiteres häufiges Problem ist, dass einige ISPs nicht möchten, dass ihre Benutzer öffentliche Server ausführen und allgemeine eingehende Ports wie Port 80 oder 25 blockieren.

Ich weiß nicht, ob beides in Ihrem Fall zutrifft, aber es könnte sein. Abgesehen davon würde ich sagen, dass Sie auf dem richtigen Weg sind. Die Konfiguration Ihres Routers und einer dynamischen DNS-Lösung ist der effizienteste Weg, dies zu tun, wenn es für Sie funktioniert.

Wenn es jedoch aus irgendeinem Grund nicht funktioniert, habe ich eine Lösung namens PageKite ( http://pagekite.net/) erstellt.) um Server hinter strengen Firewalls oder auf Geräten, die häufig den Standort wechseln, öffentlich zu machen. Dazu wird ein Tunnel von Ihrem Raspberry Pi zu einem "Front-End" -Relaiserver erstellt, der Ihre eingehenden Anforderungen und Antworten über den Tunnel weiterleitet. Jedes Mal, wenn Ihr Pi über eine funktionierende Internetverbindung verfügt und eine Verbindung zum Relais herstellen kann, ist Ihr Server sichtbar (keine Router-Optimierungen oder DNS erforderlich). Es ist freie Software, aber wenn Leute unseren Online-Service nutzen, um eine Verbindung herzustellen (anstatt irgendwo ein eigenes Relais zu betreiben), bitten wir die Leute, ein bisschen für das Privileg zu bezahlen. Dies ähnelt dem an anderer Stelle erwähnten Localtunnel, mit der Ausnahme, dass PageKite nicht nur für vorübergehende Tests mit Blick auf Zuverlässigkeit und dauerhafte Verbindungen entwickelt wurde.

Viel Glück!

Bjarni Rúnar
quelle
Ich sollte erwähnen, dass es für die Verwendung von PageKite mit einem Raspberry Pi am besten ist, die Anweisungen für Debian hier zu befolgen: pagekite.net/wiki/Howto/GNULinux/ConfigureYourSystem
Bjarni Rúnar
0

Sie benötigen einen Dienst wie DynDNSoder erhalten eine statische IP. Andernfalls könnten Sie ein VPN in Betracht ziehen.

user1945104
quelle
0

Dies hängt davon ab, ob Sie Ihre Webinhalte dauerhaft freigeben möchten oder nur einen episodischen öffentlichen Zugriff benötigen. Für letztere ist es nicht erforderlich, ein DynDNS-Konto einzurichten und Weiterleitungsports in Ihrem Router zu öffnen.

Eine ziemlich einfache Lösung ist die Verwendung von LocalTunnel , mit dem Ihr Webserver über einen Domainnamen wie den folgenden zugänglich gemacht werden kann:

http://8bv2.localtunnel.com

Dies ist sehr nützlich, um den Fortschritt einer Website, die Sie auf Ihrem Computer hosten, zu teilen.

Mickaël Le Baillif
quelle
0

Meine Lösung für mehrere Systeme unter dynamischer IP lautet wie folgt:

Ich habe eine Domain von Godaddy Entrydns 1 Cron-Job auf meinem Router, die meine IP-Adresse mit einem Token (ein Token, das entrydns bereitstellt) auf entrydns hochlädt. Und mein DNS-Server unter meiner Godaddy-Domain ist auf entrydns eingestellt. Oh und vergiss nicht portforward :)

Wenn Sie brauchen, kann ich Ihnen eine detailliertere Schritt-für-Schritt-Anleitung geben, aber ich hoffe, Sie können diesen einfachen Prozess über Google herausfinden :)

Crancker
quelle
1
Es ist möglicherweise besser, eine detailliertere Schritt-für-Schritt-Anleitung bereitzustellen, insbesondere wenn dies anderen bei ähnlichen Problemen hilft. Ich verstehe, dass googeln helfen wird, aber ich denke, jede Frage kann mit Google beantwortet werden!
Kolin