web-dev-qa-db-fra.com

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

Mon PC est derrière un routeur NAT possédant une adresse IP publique. Si je souhaite héberger un site Web, j’ai besoin d’un nom de domaine que je peux acheter auprès d’un site qui s’engage à résoudre toutes les requêtes DNS de ce nom de domaine et à envoyer l’adresse IP de mon routeur NAT ( en supposant que je ne souhaite 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 transférer toutes les requêtes HTTP de example.com à mon PC sur le réseau interne.
  2. La stratégie ci-dessus est-elle correcte?
  3. Est-il couramment utilisé?
20
Rohit Banga

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 autres références,

  1. Hébergement du serveur Apache derrière un NAT
  2. Configuration d'un serveur derrière un NAT
    utilise un exemple de routeurNAT de la série Buffalo AirStation et un routeur Linksys
  3. Windows XP Partage de connexion Internet méthode. si vous avez une machine Windows faisant du 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> Ajout/Suppression de programmes> Ajouter un composant Windows> Informations Internet. Prestations de service.

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

12
nik

Vous pouvez configurer un tunnel I2P .

Si vous avez seulement besoin de TCP, vous pouvez configurer un service caché Tor .

Si vous devez uniquement héberger des pages Web statiques, vous pouvez configurer un site ZeroNet .

Ils ne nécessitent tous aucune redirection de port.

4
v7d8dpo4

Après avoir vérifié toutes ces réponses et les procédures associées, j'ai supposé qu'elles impliquaient toutes des configurations complexes avec de gros programmes (partiellement conçus à d'autres fins), ainsi que des fichiers de configuration et d'autres éléments. J'ai donc décidé d'écrire ma propre solution.

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

C'est un script python de 250 lignes, que vous pouvez exécuter directement à partir de git checkout.

Exemple: un serveur HTTP écoute sur votre ordinateur local sur le port 80. Vous voulez 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
1
the_JQ
  1. Départ portforward.com . Ils ont des instructions détaillées pour ce genre de choses. 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 utilisez un serveur DHCP sur votre routeur (ce qui est le cas dans 97% des cas), veillez à en affecter un nettement supérieur ou inférieur à celui-ci. Un google pour "adresse IP statique du réseau local" donnera probablement des instructions sur la manière de le configurer sous différents systèmes d'exploitation.
  2. Cela fonctionnera à condition que votre fournisseur de services Internet 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. Il suffit d’obtenir Apache, il fonctionne sur presque tout et c’est ce que la plupart des sites utilisent.

1
marcusw

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

Il y a aussi d'autres choix que "homelinux"

http://www.dyndns.com/

1
0x808080

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

2.) éventuellement. Si vous avez une adresse IP statique de votre fournisseur de services Internet, vous êtes prêt à utiliser cette stratégie. Si vous n'avez pas d'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 continuellement à jour 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 courant, mais ce n'est pas rare non plus.

0
JCA122204
  1. le trafic TCP de transfert de port vers votre routeur sur le port 80 vers votre ordinateur sur le port_w Whatever_you_are_running_your_webserver

  2. vous n'avez pas besoin d'un nom de domaine pour autoriser d'autres personnes à accéder à votre serveur Web, l'adresse IP publique est suffisante. un nom de domaine sur votre adresse IP publique est tout simplement plus pratique. sinon votre plan a l'air bien.

  3. votre routeur est juste "un pare-feu" entre le public et votre serveur. une telle configuration est assez commune.

0
akira

Essayez d’héberger votre site web statique sur IPFS

ou site dynamique sur I2P

0
Volodimir Kopey