Aquí está mi configuración. Tengo una máquina virtual ejecutándose con Oracle Linux 7 instalado. Empecé con Apache service httpd start
y empezó sin problemas. He creado un index.html
archivo en ambos /var/www/html
y /var/www
. Puedo acceder a la máquina virtual desde mi máquina host usando ping
o ssh
, pero cuando abro un navegador web y navego hasta la dirección IP, el servidor no responde.
Lo verifiqué netstat -plent
y muestra que el puerto 80 está escuchando:
# netstat -plent
tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
Hemiróenvarios respuestaseso sugiere que iptables puede ser el problema, pero ninguna de esas soluciones ayudó. ¿Qué más podría estar causando el problema?
Respuesta1
Olvidaste abrir el puerto en el firewall.
Por ejemplo.
firewall-cmd --add-service=http
Recuerdahazlo permanentetambién.
Respuesta2
Estás escuchando solo en IPv6, siguiendo esa salida de netstat.
Debe acceder al sitio web solo usando IPv6 o crear otra directiva de escucha en Apache para escuchar en 0.0.0.0:80. En httpd.conf:
Listen 0.0.0.0:80
Por supuesto, puede escuchar solo en la dirección IP a la que desea enviar tráfico.
Sin embargo, este consejo no es correcto si tiene soporte para sockets de doble pila en Linux. Es posible que solo necesites verificar que la escucha de doble pila esté activada. Usando procfs, verifique este archivo:
/proc/sys/net/ipv6/bindv6only
Si no es 0, debe cambiarlo en su configuración a 0 o escuchar en IPv4 explícitamente.
Además, verifique las reglas de su firewall; Si rechaza el tráfico en ipv4 o ipv6, eso lo explicaría. Chequea aquí:
iptables -t filter -nvL INPUT
ip6tables -t filter -nvL INPUT
Si la política predeterminada no es ACEPTAR y no tiene una regla que permita el tráfico HTTP, o si tiene reglas que lo bloqueen, eso lo explicaría.