Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
¿Por qué no puedo conectarme a un sitio web alojado en mi instancia de EC2?
No puedo conectarme a un sitio web público alojado en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).
Descripción corta
Para resolver un error de sitio web inaccesible, compruebe que los ajustes de configuración de la instancia de EC2 son correctos. Por ejemplo, si la instancia no tiene las configuraciones de DNS correctas, no podrá conectarse a ningún sitio web alojado en esa instancia.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
Use SSH o SSM Session Manager para conectarse a la instancia. Si ninguno de los métodos está disponible, utilice la consola serie de EC2 para conectarse a las instancias integradas en Nitro System.
Comprobación de si la instancia se está ejecutando y supera ambas comprobaciones de estado
Asegúrese de que la instancia se ejecute en la consola de Amazon EC2. Si tiene algún problema con la comprobación de estado, siga los pasos que se indican en ¿Por qué mi instancia de EC2 de Linux no es accesible y no supera una o ninguna de las comprobaciones de estado? Compruebe si la instancia se inicia correctamente. Para obtener más información, consulte Resultados de la consola de instancias o Realización de una captura de pantalla de una instancia inaccesible.
Comprobación de los registros del sistema de la instancia para ver si hay errores de arranque.
Utilice los métodos siguientes para comprobar si hay errores de arranque:
- Si aparece un error de pánico en el kernel, consulte ¿Cómo puedo corregir un error de «pánico en el kernel: no se sincroniza» con las instancias de EC2?
- Si se muestran otros errores del sistema operativo, consulte ¿Cómo puedo solucionar el problema de una instancia de EC2 de Linux que no supera la comprobación de estado debido a problemas con el sistema operativo?
Comprobación de la configuración de la ACL de la red y el grupo de seguridad de la instancia
Use los siguientes métodos para comprobar la configuración de la instancia:
- Asegúrese de que el grupo de seguridad y la ACL de la red asociados a la instancia permitan el tráfico en los puertos 80 y 443.
- Compruebe que la tabla de enrutamiento de la subred de la instancia tenga una ruta predeterminada hacia una puerta de enlace de Internet.
Comprobación de si la instancia tiene la configuración de DNS correcta
Use los siguientes métodos para comprobar la configuración de la instancia:
- Si su sitio web utiliza el servicio DNS de Route 53, compruebe que haya configurado los registros de DNS correctamente.
- Asegúrese de que la instancia tenga asignada una dirección IP elástica. Si detiene e inicia la instancia, la dirección IP elástica seguirá asociada a la instancia.
- Asegúrese de asignar la dirección IP pública o la dirección IP elástica a un registro A.
Comprobación de si el servidor web está en ejecución y no hay firewalls en el nivel del sistema operativo que bloqueen el acceso a los puertos
Los puertos de red son los puntos de enlace para la comunicación a los que varios servicios envían solicitudes. Estas solicitudes incluyen solicitudes de conexión al sitio web de los usuarios. Los servidores web escuchan el tráfico HTTP en el puerto 80 y utilizan el puerto 443 para el tráfico cifrado con TLS/SSL. Si el servidor web no está en ejecución o los firewalls bloquean estos puertos, los usuarios no podrán conectarse al sitio web. Siga estos pasos:
-
Para comprobar si el sitio web está en ejecución localmente, ejecute este comando desde el sitio web de alojamiento de instancias de EC2:
curl https://localhost
Alternativa:
curl http://localhost:443
Nota: Si tiene problemas al usar curl, compruebe si hay problemas con el servidor de alojamiento web de la instancia. Además, compruebe la configuración de la aplicación en la instancia.
Conéctese a la instancia mediante SSH, SSM Session Manager o consola serie de EC2. -
Compruebe el estado del servicio del servidor web.
Para los sistemas RHEL, CentOS, Fedora y Amazon Linux, ejecute el comando systemctl status httpd para comprobar el estado del servidor web. El comando devuelve información que indica que el servidor web está inactivo:$ sudo systemctl status httpd.service The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead)
En el caso de los sistemas Debian o Ubuntu, ejecute el comando systemctl status apache2 para comprobar el estado del servidor web. El servidor web debe estar escuchando en el puerto 80 o 443. El comando devuelve información que indica que el servidor web está inactivo:
$ sudo systemctl status apache2.service The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled) Active: inactive (dead)
-
Para iniciar el servidor web y activar el servicio para que se inicie al arrancar, ejecute los siguientes comandos:
Para sistemas RHEL, CentOS, Fedora y Amazon Linux:$ sudo systemctl start httpd; sudo systemctl enable httpd
Para sistemas Debian o Ubuntu:
$ sudo systemctl start apache2; sudo systemctl enable apache2
-
Verifique que el servicio de servidor web esté en ejecución y activado:
Para los sistemas RHEL, CentOS, Fedora y Amazon Linux, ejecute el siguiente comando:$ sudo systemctl status httpd.service The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)Active: active (running)
En el caso de los sistemas Debian o Ubuntu, ejecute el siguiente comando:
$ sudo systemctl status apache2.service The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Active: active (running)
Nota: En sistemas Linux que ejecuten SystemV, ejecute el siguiente comando para comprobar el estado del servidor web.
En el caso de los sistemas Debian o Ubuntu, debe sustituir httpd por apache2:$ sudo service httpd statushttpd is stopped
Para reiniciar un servidor web detenido en SystemV, ejecute el siguiente comando:
$ sudo service httpd start Starting httpd: [ OK ]
-
Para confirmar si el servidor web escucha las solicitudes de conexión de entrada de los usuarios en los puertos 80 o 443, ejecute el siguiente comando:
$ sudo netstat -tulpn | grep -iP 'httpd|apache2' tcp 0 0 :::80 :::* LISTEN 2961/httpd
Nota: Si hay varias interfaces en ejecución, ejecute el siguiente comando para confirmar si el servidor web escucha en todas las direcciones IP:
cat /etc/httpd/conf/httpd.conf | grep Listen
Los siguientes son resultados de ejemplo:
Listen *:80
Alternativa:
Listen *:443
-
Verifique el estado de los firewalls en el nivel del sistema operativo. Si encuentra un firewall activo, asegúrese de que permita solicitudes en los puertos 80 y 443.
(Opcional) Para comprobar si las reglas de iptables bloquean las solicitudes de entrada en los puertos 80 y 443, ejecute el siguiente comando:$ sudo iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 35 10863 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
El resultado del comando IPTables anterior muestra que solo se permiten ICMP, localhost y el puerto 22/TCP (SSH). Esto significa que las conexiones entrantes a los puertos 80/TCP y 443/TCP están bloqueadas o rechazadas.
Para permitir que los puertos 80 y 443 acepten solicitudes de conexión HTTP y HTTPS entrantes, ejecute el siguiente comando:$ iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT
El siguiente resultado muestra que la regla multipuerto se agrega a los puertos de servicio del servidor web, 80/TCP y 443/TCP.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 486 104K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Para Amazon Linux 2023, Amazon Linux 2, RHEL 7 y versiones posteriores
Para confirmar si el servicio firewalld se está ejecutando, ejecute el siguiente comando:
$ sudo firewall-cmd --staterunning
Si el servicio firewalld está en ejecución, ejecute los siguientes comandos para permitir las conexiones en los puertos 80/TCP y 443/TCP. El último comando del ejemplo recarga el servicio para que entren en vigor las reglas recién agregadas:
$ sudo firewall-cmd --add-service=http --permanent success $ sudo firewall-cmd --add-service=https --permanent success $ sudo firewall-cmd --reload success
Para servidores Debian y Ubuntu
Siga estos pasos:
-
Para comprobar si hay un firewall sencillo (UFW), ejecute el siguiente comando:
$ sudo ufw status verbose Status: active
-
Si se está ejecutando un UFW, utilice el siguiente comando para permitir las solicitudes de conexión de entrada en los puertos 80/TCP y 443/:
$ sudo ufw allow in 80/tcp Rule added Rule added (v6) $ sudo ufw allow 443/tcp Rule added Rule added (v6)
Consulte los registros de errores de acceso a su servidor web para ver si hay problemas. Los registros del servidor web se encuentran en /var/log. A continuación se muestran las ubicaciones predeterminadas para los registros del servidor web:
- Amazon Linux y RHEL: /var/log/httpd
- Debian y Ubuntu: /var/log/apache2
Nota: La ubicación del registro del servidor web depende de la configuración del servidor.
Información relacionada
¿Cómo soluciono los problemas de conexión lenta a un sitio web alojado en mi instancia de EC2?
Vídeos relacionados


Contenido relevante
- preguntada hace 2 meseslg...
- preguntada hace un meslg...
- preguntada hace 23 díaslg...
- preguntada hace un meslg...
- preguntada hace 4 meseslg...