Necesito ejecutar Apache2 en mi servidor Debian 7. Pero solo se ejecuta en el puerto tcpv6, no en el puerto tcpv4. Lo instalé con apt-get install. Si voy a localhost o 127.0.0.1 o la dirección IPv4 de mi servidor, no muestra ningún sitio web.
Mi /etc/apache2/ports.conf
:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
netstat -plntu
:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3558/sshd
tcp 0 0 0.0.0.0:3466 0.0.0.0:* LISTEN 2820/mysqld
tcp6 0 0 :::80 :::* LISTEN 2097/apache2
tcp6 0 0 :::22 :::* LISTEN 3558/sshd
debian
apache-httpd
Mato
fuente
fuente
Listen 80
aListen 0.0.0.0:80
. Puede consultar la documentación httpd.apache.org/docs/2.2/bind.html para obtener más información.sudo iptables -nvL
ysudo sestatus
? Creo que tiene algún firewall local que está impidiendo.a2enmod php5
debería hacerlo por ti.::
.Respuestas:
El hecho de que netstat solo muestre tcp6 aquí no es el problema. Si no especifica una dirección para escuchar, apache escuchará en todas las familias de direcciones compatibles con un solo socket (por razones de diseño, sshd usa un socket único por dirección y familia de direcciones, por lo tanto, aparece dos veces en su salida de netstat).
Este es uno de mis sistemas, que muestra que Apache solo tiene zócalos tcp6 y aún así funciona bien tanto a través de IPv4 como de IPv6.
Si se ejecuta
wget http://127.0.0.1/ -O -
en el servidor, ¿qué sucede? ¿Se conecta con éxito? ¿Devuelve el HTML sin formato para su sitio web como se esperaba?fuente
INADDR_ANY
yIN6ADDR_ANY_INIT
. Pero hoy he visto un comportamiento realmente extraño. Sin cambios de firewall, sin cambios de Apache, pero de alguna manera los hosts remotos solo pueden conectarse a través de IPv6, lo cual es un problema para aquellos que aún no tienen IPv6. Ciertamente es algo que resolveré, pero tienes toda la razón (aunque la invocación que das no es aplicable en mi caso, lamentablemente).Esto manejará solo las conexiones IPV4:
https://httpd.apache.org/docs/2.2/bind.html#ipv6
fuente
127.0.0.1 es local solo para una máquina, debe estar en el servidor en un navegador para usar la dirección / IP de bucle de retorno local;
Es posible que tenga un firewall que bloquea los puertos;
Asegúrese de que apache se esté ejecutando y funcione correctamente, verifique los registros de errores;
Verifique todas sus configuraciones de apache;
¿Está alojando desde la raíz www o el directorio public_html del usuario?
Verifique el propietario y los permisos.
Casi el año 2019 (Bienvenido al futuro):
Por defecto, la mayor parte del mundo usa ipv6 y, si falla, recurre a ipv4;
Ahora tenemos túneles ipv4 sobre ipv6 y viceversa;
La mayoría de los sistemas operativos, los programas, el cliente y el servidor lo hacen principalmente ahora;
Bienvenido al mundo de no más NAT y tener que depender ahora de firewall / filtros directamente en su dispositivo;
Recomendaría tratar de mantener sus sistemas apilados doblemente, admitiendo tanto ipv4 como ipv6 al mismo tiempo, de modo que cuando ocurra el cambio mágico, todavía esté en funcionamiento. Mi sistema operativo, red, incluso mi ISP tiene doble pila de extremo a extremo. Podría desactivar ipv4 por completo si quisiera, pero lo que está ahí fuera podría no funcionar si no existen túneles de nuevo a ipv6 desde ipv4.
fuente
* *
* representa la conexión al servidor local sin manejar IPv4 o IPv6, si cambia localhost (o 127.0.0.1) a la dirección IP IPv4 real de este servidor, no puede obtener nada porque se le negó la conexión.
Intente describir su IP en los archivos de configuración: NameVirtualHost: 80 Listen: 80
fuente