Apache solo funciona sobre IPv6
Troubleshoooting:
a) Para que escuche en IPv4:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar
Listen 192.168.1.10:80
Se pueden colocar varias directivas Listen. Tales como:
Listen 192.168.1.10:80
Listen 127.0.0.1:80
Para escuchar en todo IPv4 (cualquier IPv4 configurado en el server):
Listen 0.0.0.0:80
b) Para escuchar en IPv6:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar <[direccionIPv6]:puerto>. Por ejemplo:
Listen [2001:db8::4]:80
Reiniciar apache..., por ejemplo: /etc/init.d/apache2 restart
Diagnóstico:
Para saber que servicios, a que direcciones IP escucha y que proceso esta asociado recomiendo utilizar el comando: netstat -pan
#netstat -pan | more
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 965/mysqld
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1162/perl
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8478/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 816/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 192.168.1.10:22 192.168.1.2:57997 ESTABLISHED 19601/sshd: aacosta
tcp6 0 0 ::1:587 :::* LISTEN 1020/sendmail: MTA:
tcp6 0 0 :::80 :::* LISTEN 1134/apache2
tcp6 0 0 :::22 :::* LISTEN 816/sshd
En el extracto anterior la ultima linea indica que se está escuchando en todas las direcciones IPv6 (se puede comprender gracias a la culumna de la izquiera que indica tcp6 y luego en la cuarta columa indica ::22). El puerto está en estado listen por el proceso sshd y el pid 816
Para el primera linea se entiende que mysqld está escuchando en la dirección IPv4 127.0.0.1 en el puerto 3306 bajo el pid (process id) 965. Es decir, mysql no esta habilitado para escuchar conexiones de red (solo escucha localhost)
Mas información:
- http://serverfault.com/questions/332409/how-to-set-apache-virtualhost-to-work-with-ipv6- http://www.linuxweblog.com/blogs/sandip/20081027/forcing-apache-listen-ipv4
- http://www.linuxask.com/questions/limit-apache-only-listen-to-ipv4-address