Est-il possible d'héberger un serveur web derrière un NAT


21

Mon PC est derrière un routeur NAT qui a une adresse IP publique. Si je veux héberger un site Web, je crois que j'ai besoin d'un nom de domaine que je peux acheter sur un site qui s'engagerait à résoudre toutes les demandes DNS pour ce nom de domaine et à envoyer l'adresse IP de mon routeur NAT (en supposant que je ne veux pas héberger mon nom de domaine sur leurs serveurs). Maintenant, je veux héberger un serveur Web sur mon ordinateur.

  1. Quelles modifications doivent être apportées à la configuration du routeur NAT pour transmettre toutes les demandes HTTP pour example.com à mon PC dans le réseau interne.
  2. La stratégie ci-dessus est-elle correcte?
  3. Est-il couramment utilisé?

Réponses:


12

Il est possible d'héberger un serveur derrière NAT comme vous le décrivez.
Regardez cette page d'aide Ubuntu sur ServersBehindNAT pour les bases.

Quelques références supplémentaires,

  1. Hébergement du serveur Apache derrière un NAT
  2. Configuration d'un serveur derrière un NAT,
    cela utilise un routeur NAT Buffalo AirStation et des exemples de routeur Linksys
  3. Méthode de partage de connexion Internet Windows XP . si vous avez une machine Windows faisant NAT
  4. [Si vous utilisez XP, vous pouvez également utiliser IIS 6 5 (1 prise en charge d'hôte virtuel) en allant dans Panneau de configuration> Ajouter et supprimer des programmes> Ajouter un composant Windows> Internet Information Services.

Cela suppose que vous savez héberger un serveur Web et que vous avez besoin d'idées sur NAT.



1

Une autre alternative pourrait être quelque chose comme homelinux, où votre adresse IP dynamique peut être mappée à un statix .homelinux. URL

Il existe également d'autres choix que "homelinux"

http://www.dyndns.com/


1
  1. Consultez portforward.com . Ils ont des instructions détaillées pour ce genre de chose, l'idée de base est que vous devez configurer le routeur pour qu'il transfère les requêtes TCP sur le port 80 à l'adresse IP de votre ordinateur. Cela amène une autre chose: vous devrez configurer votre ordinateur pour avoir une adresse IP statique. Si vous avez un serveur DHCP exécuté sur votre routeur (ce qui est le cas dans 97% des cas), assurez-vous d'en attribuer un bien au-dessus ou en dessous. Un google pour «adresse IP LAN statique» affichera probablement des instructions sur la façon de configurer cela sur différents systèmes d'exploitation.
  2. Cela fonctionnera à condition que votre FAI ne bloque pas les connexions entrantes sur le port 80; certains le font pour des raisons de sécurité.
  3. Peut être. C'est ce que je fais en ce moment avec ftp, http, ssh, vnc, xmpp, et quelques autres choses ...

Vous devez également exécuter un serveur Web sur votre ordinateur. Obtenez simplement Apache, il fonctionne sur presque tout et c'est ce que la plupart des sites utilisent.


1

Après avoir vérifié toutes ces réponses et lié les procédures, j'ai pensé qu'elles impliquaient toutes des configurations élaborées avec de gros programmes (qui sont partiellement conçus à d'autres fins) et des fichiers de configuration et d'autres choses.J'ai donc décidé d'écrire ma propre solution.

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

Il s'agit d'un script python de 250 lignes, que vous pouvez exécuter directement à partir de la vérification de git.

Exemple: Vous avez un serveur HTTP à l'écoute sur votre machine locale sur le port 80. Vous souhaitez le rendre disponible sur l'IP publique de votre serveur cloud / VPS / etc sur le port 7000. Nous utilisons le port 8000 sur le serveur cloud pour le canal de contrôle.

utiliser comme

Serveur:

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

Client:

natsrv.py --mode client --secret s3cretP4ss --local localhost:80 --admin example.com:8000

0
  1. le trafic TCP de port-forward vers votre routeur sur le port 80 vers votre PC sur port_wwhat_you_are_running_your_webserver

  2. vous n'avez pas besoin d'un nom de domaine pour permettre à d'autres d'accéder à votre serveur web, l'ip publique est suffisante. un nom de domaine sur votre IP publique est juste plus pratique. sinon votre plan semble correct.

  3. votre routeur n'est qu'un "pare-feu" entre le public et votre serveur. une telle configuration est assez courante.



0

1.) Vous devez transférer le port 80 vers votre adresse IP interne sur le port 80

2.) Peut-être. Si vous avez une adresse IP statique de votre FAI, vous êtes prêt pour cette stratégie. Si vous ne disposez pas d'une adresse IP statique, vous devrez probablement utiliser Dynamic Dns, qui est l'endroit où vous exécutez un logiciel sur le serveur, et il met à jour en permanence l'adresse IP de votre nom de domaine, qui est généralement quelque chose ils assignent. Cependant, vous pouvez configurer un enregistrement CNAME sur votre domaine pointant vers celui du fournisseur DNS dynamique.

3.) Personnellement, je ne dirais pas que c'est commun, mais ce n'est pas rare non plus.


-2

Votre stratégie est couramment utilisée et si vous avez acheté une adresse IP publique, alors vous êtes à peu près prêt.

Vous devriez obtenir XAMPP. XAMMP préconfiguré et Apache utilisera le port 80 par défaut. Assurez-vous qu'aucun autre processus ne s'exécute sur le port 80, sinon Apache ne s'exécutera pas. En règle générale, Skype (si vous utilisez Skype) joue un sport gâté et le port 80 de porcs, vous devez le désactiver à partir de vos paramètres de connexion.

Il contient Apache, PHP et Mysql, il prendra soin de tous vos besoins. N'oubliez pas de bien le fixer .

Gardez à l'esprit que XAMPP n'est pas un logiciel de production, mais qu'il devrait répondre à vos besoins d'hébergement d'un site Web / blog personnel.

Encore une chose, si vous voulez que ce site Web soit ouvert 24 heures sur 24, 7 jours sur 7, vous devrez garder votre ordinateur allumé 24 heures sur 24, 7 jours sur 7.

Si vous avez besoin d'un domaine gratuit, vous pouvez obtenir un co.cc pour un usage personnel, et ils le renouvellent chaque année

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.