3 votes

Est-il possible d'utiliser mon adresse IP publique pour servir un site web ? (Catalina)

Je suis un peu novice en matière de serveurs, d'adresses IP (publiques et privées), de ports, de réseaux et de la façon dont tout cela est lié.

En jouant, j'ai réussi à faire tourner Apache sur mon Mac et à faire fonctionner une page html sur localhost. J'ai tapé mon adresse IP privée dans un autre appareil et j'ai pu voir cette page.

Si je comprends bien, une adresse IP privée est une adresse IP spécifique à mon "réseau local" qui, je suppose, est tout ce qui est connecté à mon wifi.

Est-il possible de créer une page web qui soit servie par mon mac et visible par des appareils non connectés à mon réseau local ? Je voudrais pouvoir taper mon adresse IP publique dans une barre d'URL et voir cette page.

Je suis conscient qu'il existe une application de l'App Store liée à ce sujet, mais je pense que cela devrait être une fonctionnalité de base qui peut être faite à partir du Terminal (corrigez-moi si je me trompe).

Merci pour votre aide !

2voto

Graham Miln Points 39606

Cela dépend en grande partie de la configuration de votre réseau et ne peut faire l'objet d'une réponse unique.

Essayez avec mon Au-delà de Miln pour confirmer votre adresse IP primaire sortante, et si un dispositif NAT ou UPnP se trouve sur votre réseau. Cela permet de vérifier si les dispositifs sont configurables et si votre réseau est réellement accessible au public.

Utilisez l'outil Beyond Au-delà du réseau pour voir les adresses IP attribuées à votre ordinateur et à votre réseau :

Screenshot of Miln Beyond

Avez-vous un autre ordinateur ou appareil sur un réseau séparé, comme un téléphone portable avec une connexion de données (non wifi) ? Utilisez ce deuxième appareil pour tester l'accès à votre serveur. Tester l'accès en utilisant le même réseau peut donner des résultats trompeurs.

Si cela fonctionne, vous pouvez faire de même via la ligne de commande et Apache. httpd .

Adresse non vérifiée

Vous avez commenté :

Adresse non vérifiée potentiellement accessible. Fournie par le dispositif local de traduction d'adresses réseau (NAT) ou le dispositif Universal Plug and Play (UPnP).

Une adresse "non vérifiée" est potentiellement accessible depuis l'Internet. Elle est non vérifiée uniquement parce que Beyond ne l'a pas vérifiée activement (ce qui nécessite une adhésion).

La liste suggère également que votre routeur prend en charge NAT ou UPnP pour ouvrir les ports externes et autoriser le trafic entrant.

Votre routeur Internet dispose-t-il d'une interface web ? Le routeur est un appareil souvent fourni par votre fournisseur d'accès Internet (FAI). Si c'est le cas, recherchez NAT o UPnP Ces paramètres peuvent également être appelés "transfert de port".

Par défaut, votre routeur doit bloquer le trafic entrant d'Internet vers votre réseau. Pour offrir un serveur à l'Internet au sens large, il faut demander à votre routeur d'accepter un trafic entrant spécifique et de le transmettre au serveur à l'intérieur de votre réseau.

Pour les serveurs et services de courte durée, comme les appels vidéo/voix, on utilise le NAT et l'UPnP. C'est ce que Beyond a réussi à faire sur votre réseau.

2voto

s3_gunzel Points 154

Est-ce possible ? Oui. Mais il y a quelques réserves :

  1. Votre fournisseur d'accès à Internet peut (et c'est probablement le cas) bloquer l'hébergement de serveurs de toute sorte derrière votre réseau - comme indiqué dans ses conditions de service.
  2. Apache (et donc les sites web) nécessite généralement un temps de fonctionnement constant. L'héberger sur un Mac n'est pas impossible, loin de là, mais vous devrez garder l'ordinateur allumé. sur tout le temps. Ce qui peut finir par ralentir votre ordinateur au point de le rendre inutilisable pour vous.
  3. Si vous obtenez un trafic suffisant (bots, etc.), votre fournisseur d'accès peut considérer qu'il s'agit d'une attaque par déni de service (DoS). Il peut suspendre votre service.

Si, pour une raison quelconque, il s'avère que votre fournisseur d'accès ne bloque pas les serveurs sur le réseau, vous pouvez utiliser un service comme DynDNS pour faire pointer un nom d'hôte vers votre IP externe, ce qui rend tout cela beaucoup plus facile à retenir.

Vous devrez également transférer le port 80 (et/ou 443) via votre modem vers votre IP privée interne, qui peut ou non changer derrière votre réseau.

2voto

Jcubed Points 2972

Il existe plusieurs façons d'y parvenir :

  • La méthode classique consiste à configurer votre routeur pour qu'il fasse " transfert de port ". Vous lui indiquez que toute connexion destinée au port 80 doit être redirigée vers votre ordinateur, de sorte que toute personne essayant d'effectuer une requête HTTP vers votre adresse IP publique sera envoyée vers le serveur HTTP de votre Mac.

    Vous feriez probablement la même chose pour le port 443 (HTTPS).

    Des limitations s'appliquent : votre FAI ne doit pas bloquer le trafic entrant (explicitement ou implicitement car il utiliserait CGNAT), vous ne pouvez rediriger que vers un seul serveur...

    Au lieu d'utiliser votre adresse IP publique, vous pouvez utiliser un service DNS dynamique qui vous donnera un nom de domaine correspondant à votre adresse IP et qui sera mis à jour si votre adresse IP change. Si vous avez une adresse IP fixe, vous pouvez faire pointer directement un nom DNS vers votre IP.

  • Un autre moyen est de faire creusement de tunnels . Quelque chose sur votre Mac se connecte à un serveur à l'extérieur, et un tunnel est créé dans cette connexion, qui transmet le trafic reçu sur l'IP/port du serveur extérieur à votre serveur.

    Si vous avez votre propre serveur Linux hébergé quelque part, vous pouvez utiliser ssh avec un transfert de port à distance demande ( -R ) pour y parvenir.

    Ou vous pouvez utiliser un service comme Ngrok qui le fera pour vous. Vous lui indiquez le protocole et le port locaux de votre Mac, et il vous donnera une URL accessible au public qui sera renvoyée au serveur sur votre Mac. Il existe probablement des tonnes d'alternatives.

    Il existe également des VPN à usage plus général qui peuvent être utilisés, mais attention aux implications en matière de sécurité.

    L'inconvénient de toutes ces méthodes est que vous dépendez de "quelque chose" sur l'Internet et que tout le trafic passe par ce dispositif/service avant d'atteindre votre serveur domestique. Cela peut ajouter de la latence ou des goulots d'étranglement au niveau de la bande passante et, bien sûr, il y a souvent un coût direct ou indirect puisque vous devez payer pour ce "quelque chose".

Notez que dans les deux cas, vous devez être attentif aux points suivants sécurité : votre réseau local est normalement protégé de l'extérieur par NAT, mais vous êtes Ouvrir un "trou". . En cas de problème de sécurité sur le serveur que vous exécutez sur votre Mac, des utilisateurs externes peuvent accéder à des éléments de votre Mac ou du reste de votre réseau auxquels ils n'auraient pas accès habituellement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X