3 votes

Impossible d'accéder au serveur EC2 via l'adresse IP

Je rencontre ce problème pour accéder à l'IP publique élastique de mon instance EC2 dans le navigateur web. J'ai installé REDHAT 6.3 et installé le serveur web nginx (opérationnel) et je me suis également assuré que le port 80 était activé et que tout était configuré.

Il est maintenant temps d'entrer l'IP publique pour afficher la page web par défaut de nginx et rien ne se passe. Je n'ai pas pu accéder à l'adresse IP.

Maintenant, je peux envoyer un ping à d'autres sites Web, mais pas à mon adresse IP.

Après avoir passé plusieurs heures à essayer de comprendre ce qui se passait, je me suis dit que je devais vérifier la mise en réseau de l'OS REDHAT et chaque fois que j'essaie de modifier quoi que ce soit en rapport avec le réseau, je perds la connexion au serveur et je ne peux pas redémarrer le réseau.

Qu'est-ce qui ne va pas ici ? Pourquoi est-il si difficile d'accéder à mon serveur par IP ? Que dois-je faire maintenant ?

Gracias.

EDIT. voici le groupe de sécurité associé à l'instance EC2

Ports   Protocol    Source
20-21   tcp 0.0.0.0/0   
22  tcp 0.0.0.0/0   
80  tcp 0.0.0.0/0   
14000-14050 tcp 0.0.0.0/0

0 votes

Le Ping n'est pas activé par défaut, et le port 80 ne figure pas dans le groupe de sécurité AWS. À quoi ressemble votre groupe de sécurité AWS pour cette instance ?

0 votes

@jason-floyd il est affiché dans la question..sous EDIT.

0 votes

Utilisez-vous un VPC ou une simple instance EC2 ?

1voto

GeoSword Points 1627

S'il ne s'agit que de trafic web et que vous pouvez toujours accéder à votre instance par ssh, il s'agit très certainement d'un problème lié à la configuration de nginx.

0 votes

Nginx est configuré correctement... j'en suis sûr à 100%.

1voto

Marty Points 3332

Donc, il y a quelques choses qui pourraient être fausses ici. Vous pouvez les tester un par un et trouver la cause du problème.

  1. Vérifiez d'abord si vous pouvez vous connecter au port de l'extérieur. Pour ce faire, utilisez cette commande

    # telnet IP 80

    Si vous pouvez vous connecter par ce biais, cela signifie qu'il y a sûrement un problème avec les paramètres de votre serveur Web et que vous ne devriez pas examiner les règles suivantes.

  2. Si la première ne fonctionne pas, la deuxième chose à vérifier est votre iptables dans votre machine, pas seulement le groupe de sécurité AWS. Pour ce faire, vérifiez la sortie de cette commande.

    # iptables -L -n

    Les politiques par défaut devraient toujours être ACCEPT, si vous ne mettez pas spécifiquement à DROP o REJECT . Pour vérifier si iptables est le problème ou non, vous pouvez essayer de désactiver iptables en vidant les règles ou en arrêtant votre service iptables.

    Pour purger les règles, utilisez cette commande :

    # iptables -F

    Pour arrêter le service iptables :

    # service iptables stop

    Essayez maintenant d'accéder à votre site.

  3. La troisième option est de vérifier le Selinux sur votre machine. Sur les machines redhat, SElinux est activé par défaut. Pour le vérifier, utilisez cette commande et vérifiez l'état :

    # getsebool

    Il devrait dire quelque chose comme ça :

    getsebool:  SELinux is disabled

    Si elle est activée, elle peut en être la cause. Essayez de le désactiver temporairement avec cette commande :

    # setenforce 0

    Ceci désactivera le SElinux sur votre machine de façon temporaire. Si cela résout votre problème, il suffit de mettre à jour l'état de Enforcing à disabled sur /etc/sysconfig/selinux et cela désactivera SElinux sur votre machine de façon permanente.

J'espère que cela vous a aidé.

0 votes

J'ai corrigé ce problème... j'ai découvert que depuis que j'utilisais RedHat 6... le port 80 n'était pas ouvert par défaut, j'ai donc dû modifier iptables pour inclure le port 80... même avec le groupe de sécurité, j'ai quand même dû le faire... merci...

0 votes

Content que ça ait aidé.

1voto

metachuh Points 51

GeekRide a fait un excellent travail en soulignant les différentes étapes de dépannage. La réponse pour mon déploiement était liée à iptables. L'arrêt du service est un bon conseil pour identifier rapidement le problème.

Pour résoudre ce problème, assurez-vous d'"insérer" votre port dans la table. Ne l'ajoutez pas, car vous le ferez probablement après une entrée "rejeter tout" qui se trouve à la fin de la liste. Cet exemple utilise 5 pour être placé après la règle du port 22. Dans aws, puisque vous vous connectez en tant que ec2-user, ajoutez la commande sudo.

# sudu su
# iptables -L -n
# iptables -I INPUT 5 -p tcp --dport XXXXX -j ACCEPT

Si cela fonctionne, assurez-vous de sauvegarder au cas où le service iptables est redémarré

# iptables-save

0 votes

Merci pour la solution. Cela a fonctionné.

0voto

don_crissti Points 2644

Avez-vous modifié le pare-feu des groupes de sécurité pour autoriser le trafic web ssh, etc ?
le pare-feu par défaut du groupe de sécurité est assez dur.

à partir de votre console EC2

Network & security -> Security groups -> default -> inbound

peut choisir un modèle de règle dans la liste déroulante ou en créer un personnalisé.

add rule -> apply rule changes

les changements devraient être presque instantanés

0 votes

Oui, j'ai moi-même une installation de sécurité avec les ouvertures suivantes 20-21 tcp 0.0.0.0/0 22 tcp 0.0.0.0/0 80 tcp 0.0.0.0/0 14000-14050 tcp 0.0.0.0/0

0 votes

Ok, pouvez-vous vous connecter au nom dns public par défaut associé à l'instance ?

0 votes

Oui avec putty..c'est comme ça que je suis capable d'exécuter des codes en ligne de commande

0voto

Jason Floyd Points 1612

Outre les paramètres de votre groupe de sécurité AWS pour autoriser le port 80, vérifiez également votre pare-feu Redhat. Le port 80 n'est pas ouvert par défaut.

Sur votre système redhat, exécutez system-config-firewall-tui pour obtenir la configuration du pare-feu util pour redhat ouvert, puis autoriser l'accès au port http 80.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X