GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿No ve Apache ejecutándose en Netstat?

Solo estoy jugando con apache y lo hice funcionar, es decir, puedo conectarme al servidor navegando a http://127.0.0.1 y http://192.168.1.5 NO estoy ejecutando IPv6

Sin embargo, este es el resultado de netstat

$ sudo service apache2 status
 * apache2 is running
$ netstat -an | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN

$ wget 127.0.0.1
--2014-06-26 01:32:15--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11510 (11K) [text/html]
Saving to: ‘index.html’

100%[=====================================================================================================>] 11,510      --.-K/s   in 0s      

2014-06-26 01:32:15 (161 MB/s) - ‘index.html’ saved [11510/11510]

¡Esperaba verlo escuchando en un TCP regular, lo cual claramente hace!?

Editar:

$ netstat -a | grep LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 localhost:mysql         *:*                     LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:https              [::]:*                  LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     

Editar2:
¿Por qué el voto negativo? ¿Qué me estoy perdiendo alguien puede elaborar?

Respuesta aceptada:

TL;DR

Apache aparecer en su netstat salida, y es corriendo. Es por eso que su wget obras de llamada. Sin embargo, está vinculado a su dirección IPv6 en lugar de a su dirección IPv4. El mapeo de direcciones maneja la traducción cuando es necesario.

En busca de los documentos

Obviamente, aquí hay algún mecanismo alternativo de IPv6-IPv4. De hecho, todavía no uso IPv6 en mi red local:

$ netstat -tunla | grep LISTEN | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN

Es importante tener en cuenta que no importa cómo se dirija a su máquina, al final sigue siendo el mismo servicio y puerto. El resto depende principalmente de su navegador y los servicios de resolución de DNS. Sin embargo, para obtener más información sobre cómo Apache maneja esto, puede consultar su documentación:

Un factor de complicación para los administradores de Apache es si un socket IPv6 puede o no manejar conexiones IPv4 e IPv6. El manejo de conexiones IPv4 con un socket IPv6 utiliza direcciones IPv6 asignadas a IPv4, que están permitidas de manera predeterminada en la mayoría de las plataformas, pero no están permitidas de manera predeterminada en FreeBSD, NetBSD y OpenBSD, para que coincidan con la política de todo el sistema en esas plataformas. En los sistemas en los que no está permitido de forma predeterminada, un parámetro de configuración especial puede cambiar este comportamiento para Apache.

Básicamente, se trata de manejar los sockets IPv4 e IPv6 de manera que se eviten la mayoría de los problemas relacionados con la compatibilidad entre plataformas y el manejo de sockets. Como puede leer, en plataformas Linux como Ubuntu, este problema se resuelve utilizando direcciones IPv6 asignadas a IPv4. La documentación también establece:

Si desea que Apache solo maneje conexiones IPv4, independientemente de lo que admitan su plataforma y APR, especifique una dirección IPv4 en todas las directivas de escucha.

Lo que daría algo como esto en ports.conf archivo :

Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80

Resultando en uno de los siguientes netstat salidas…

$ netstat -tunla | grep LISTEN | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN 
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      127.0.0.1:80              127.0.0.1:80            LISTEN
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      192.0.2.1:80              192.0.2.1:80            LISTEN 

Un oyente hermoso, pero no preparado para IPv6. La configuración anterior generalmente se establece en /etc/apache2/ports.conf (o directamente en apache2.conf para versiones anteriores). El valor predeterminado es Listen 80 , que realiza un automático vinculante, es decir, conforme a las especificaciones de IPv6 proporcionadas en la documentación.

Relacionado:¿Implicaciones de ejecutar la aplicación KDE en Gnome?
Ubuntu
  1. ¿Cómo reiniciar Apache?

  2. Apache/Mysql no se está ejecutando. ¿Equivocado?

  3. ¿Instalar Apache 2.2.22 en Ubuntu 14.04?

  4. reiniciar apache

  5. Ejecutando Apache como un usuario diferente

Cómo instalar Apache en CentOS 8

Apache vs Nginx - Comparación detallada

Instale Apache Solr 8.8 en Ubuntu 20.04

Instalar Apache Solr en Ubuntu 20.04

Instalación de Apache Spark en Ubuntu 20.04 o 18.04

¿Los lanzadores de paneles 8.04 no funcionan en 10.04?