Ist es möglich, einen Webserver hinter einem NAT zu hosten?

21

Mein PC befindet sich hinter einem NAT-Router, der eine öffentliche IP-Adresse hat. Wenn ich eine Website hosten möchte, dann glaube ich, dass ich einen Domainnamen brauche, den ich von einer Site kaufen kann, die sich verpflichtet, alle DNS-Anfragen für diesen Domainnamen aufzulösen und die IP-Adresse meines NAT-Routers zu senden (vorausgesetzt, ich möchte nicht meinen Domainnamen auf ihren Servern hosten). Jetzt möchte ich einen Webserver auf meinem Computer hosten.

  1. Welche Änderungen sollten an der Konfiguration des NAT-Routers vorgenommen werden, um alle HTTP-Anforderungen für example.com an meinen PC im internen Netzwerk weiterzuleiten?
  2. Ist die obige Strategie richtig?
  3. Wird es häufig verwendet?
Rohit Banga
quelle

Antworten:

12

Es ist möglich, einen Server hinter NAT zu hosten, wie Sie beschreiben.
Auf dieser Ubuntu- Hilfeseite unter ServersBehindNAT finden Sie grundlegende Informationen .

Einige weitere Referenzen,

  1. Hosting des Apache-Servers hinter einem NAT
  2. Einrichten eines Servers hinter einem NAT
    Hierfür werden ein NAT-Router der Buffalo AirStation-Serie und Linksys-Router-Beispiele verwendet
  3. Freigabemethode für Windows XP-Internetverbindungen . Wenn Sie einen Windows-Computer haben, der NAT ausführt
  4. [Wenn Sie XP verwenden, können Sie auch IIS 6 5 (1 Unterstützung für virtuelle Hosts) verwenden, indem Sie zu Systemsteuerung> Software> Windows-Komponente hinzufügen> Internetinformationsdienste wechseln.

Dies setzt voraus, dass Sie wissen, wie man einen Webserver hostet und Ideen für NAT benötigt.

nik
quelle
1

Eine andere Alternative könnte etwa homelinux sein, bei der Ihre dynamische IP-Adresse einer statischen .homelinux- Datei zugeordnet werden kann. URL

Es gibt auch andere Möglichkeiten als "homelinux"

http://www.dyndns.com/

0x808080
quelle
1
  1. Schauen Sie sich portforward.com an . Sie haben detaillierte Anweisungen für diese Art von Dingen. Die Grundidee ist, dass Sie den Router so einrichten müssen, dass TCP-Anforderungen an Port 80 an die IP-Adresse Ihres Computers weitergeleitet werden. Dies bringt eine andere Sache auf den Punkt: Sie müssen Ihren Computer so einstellen, dass er eine statische IP hat. Wenn auf Ihrem Router ein DHCP-Server ausgeführt wird (was in 97% der Fälle der Fall ist), stellen Sie sicher, dass Sie einen Server weit darüber oder darunter zuweisen. Bei einer Google-Suche nach "statischen LAN-IP-Adressen" werden wahrscheinlich Anweisungen zum Einrichten dieser Adresse auf verschiedenen Betriebssystemen angezeigt.
  2. Dies funktioniert, sofern Ihr Internetdienstanbieter keine eingehenden Verbindungen auf Port 80 blockiert. Einige tun dies aus Sicherheitsgründen.
  3. Vielleicht. Das mache ich gerade mit FTP, HTTP, SSH, VNC, XMPP und ein paar anderen Dingen ...

Sie müssen auch einen Webserver auf Ihrem Computer ausführen. Holen Sie sich einfach Apache, es läuft auf fast allem und ist das, was die meisten Websites verwenden.

marcusw
quelle
1

Nachdem ich all diese Antworten überprüft und Anleitungen verlinkt hatte, stellte ich fest, dass sie alle aufwändige Setups mit großen Programmen (die teilweise für andere Zwecke erstellt wurden) und Konfigurationsdateien und anderen Dingen beinhalten. Deshalb habe ich beschlossen, meine eigene Lösung zu schreiben.

https://github.com/rofl0r/nat-tunnel

Es ist ein Python-Skript mit 250 Zeilen, das Sie direkt aus der Git-Kasse ausführen können.

Beispiel: Auf Ihrem lokalen Computer lauscht ein HTTP-Server an Port 80. Sie möchten ihn auf der öffentlichen IP-Adresse Ihres Cloud-Servers / VPS / etc an Port 7000 verfügbar machen. Wir verwenden Port 8000 auf dem Cloud-Server für den Steuerkanal.

Verwenden Sie wie

Server:

natsrv.py --mode server --secret s3cretP4ss --public 0.0.0.0:7000 --admin 0.0.0.0:8000

Klient:

natsrv.py --mode client --secret s3cretP4ss --local localhost:80 --admin example.com:8000
the_JQ
quelle
0
  1. Port-Forward-TCP-Verkehr zu Ihrem Router auf Port 80 zu Ihrem PC auf Port_whatever_you_are_running_your_webserver

  2. Sie benötigen keinen Domainnamen, um anderen den Zugriff auf Ihren Webserver zu ermöglichen. Die öffentliche IP-Adresse ist ausreichend. Ein Domainname für Ihre öffentliche IP-Adresse ist nur praktischer. ansonsten sieht dein plan ok aus.

  3. Ihr Router ist nur eine "Firewall" zwischen der Öffentlichkeit und Ihrem Server. Ein solches Setup ist ziemlich verbreitet.

Akira
quelle
0

Versuchen Sie, Ihre statische Website auf IPFS zu hosten

oder dynamische Website auf I2P

Volodimir Kopey
quelle
0

1.) Sie müssen Port 80 an Ihre interne IP-Adresse auf Port 80 weiterleiten

2.) Möglicherweise. Wenn Sie eine statische IP-Adresse von Ihrem Internetdienstanbieter haben, können Sie diese Strategie anwenden. Wenn Sie keine statische IP-Adresse haben, müssen Sie wahrscheinlich Dynamic DNS verwenden, mit dem Sie eine Software auf dem Server ausführen, und die IP-Adresse Ihres Domainnamens wird fortlaufend aktualisiert. Dies ist in der Regel etwas sie weisen zu. Sie können jedoch einen CNAME-Eintrag in Ihrer Domain einrichten, der auf den Eintrag des Anbieters für dynamische DNS verweist.

3.) Ich persönlich würde nicht sagen, dass es üblich ist, aber es ist auch nicht ungewöhnlich.

JCA122204
quelle
-2

Ihre Strategie wird häufig verwendet, und wenn Sie eine öffentliche IP-Adresse gekauft haben, können Sie sie praktisch nutzen.

Sie sollten XAMPP bekommen . XAMMP ist vorkonfiguriert und Apache verwendet standardmäßig Port 80. Stellen Sie sicher, dass auf Port 80 kein anderer Prozess ausgeführt wird, da sonst Apache nicht ausgeführt wird. Im Allgemeinen spielt Skype (wenn Sie Skype verwenden) verdorbenen Sport und Schweine-Port 80. Sie müssen es in Ihren Verbindungseinstellungen deaktivieren.

Es enthält Apache, PHP und MySQL und kümmert sich um alle Ihre Bedürfnisse. Vergiss nur nicht, es gut zu sichern .

Denken Sie nur daran, dass XAMPP keine Produktionssoftware ist, sondern Ihren Bedürfnissen beim Hosten einer persönlichen Website / eines persönlichen Blogs entsprechen sollte.

Eine weitere Sache: Wenn Sie möchten, dass diese Website rund um die Uhr verfügbar ist, müssen Sie Ihren Computer so gut wie rund um die Uhr einschalten.

Wenn Sie eine kostenlose Domain benötigen, können Sie eine co.cc für den persönlichen Gebrauch erwerben , die jedes Jahr erneuert wird

rzlines
quelle