Pourquoi mon instance EC2 ne peut-elle pas se connecter à Internet via une passerelle Internet ?

Dernière mise à jour : 19/02/2021

Mon instance Amazon Elastic Compute Cloud (Amazon EC2) a une adresse IP publique, mais ne peut pas accéder à Internet. Comment puis-je résoudre ce problème ?

Résolution

Vérifiez que l'instance répond à toutes les conditions préalables

L'instance doit remplir les conditions suivantes :

Vérifiez que l'instance possède une adresse IP publique

Si l'instance n'a pas d'adresse IP publique, mais dispose d'une passerelle Internet, l'instance n'est pas accessible en dehors du Virtual Private Cloud (VPC) dans lequel elle réside.

Pour autoriser la connectivité de l'instance à Internet, allouez une adresse IP Elastic et associez-la à l'instance.

Ou activez l'attribut d'adressage IPv4 public dans votre sous-réseau. L'activation de l'attribut d'adressage IPv4 signifie que les instances lancées dans le sous-réseau sont attribuées aux adresses IP publiques au lancement.

Vérifiez qu'un pare-feu ne bloque pas l'accès

Si l'instance répond aux conditions précédentes et que les problèmes de connectivité Internet persistent, essayez les opérations suivantes :

1.FSPTestez l'accessibilité du site ou de l'emplacement à partir d'une instance ou d'un appareil de travail connu à l'aide des outils ping ou curl.

2.FSPVérifiez que tous les périphériques ou logiciels de pare-feu autorisent le trafic via HTTP ou HTTPs.

Exécutez la commande suivante pour vérifier qu'il n'y a pas de règles bloquant le trafic :

$ sudo iptables -L
$ sudo iptables -L -t nat

Si la commande précédente indique le trafic bloqué, supprimez la règle ou ajoutez une règle autorisant le trafic pour ce port spécifique. Dans l'exemple suivant, remplacez examplerule par la nouvelle règle et le port 80 par votre numéro de port spécifique.

$ sudo iptables -D examplerule
$ sudo iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

Windows Server :

Pour les pare-feu par défaut Windows Server exécutez la commande suivante :

netsh advfirewall firewall show rule name=all

Si la commande précédente indique un trafic bloqué, supprimez l'ancienne règle ou ajoutez-en une nouvelle autorisant le trafic pour ce port spécifique. Dans l'exemple suivant, remplacez le port 80 par votre numéro de port spécifique.

netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80