O Apache2 não roda na porta tcp do IPv4

18

Eu preciso executar o Apache2 no meu servidor Debian 7. Mas ele é executado apenas na porta tcpv6, não na porta tcpv4. Eu instalei com o apt-get install. Se eu for para localhost ou 127.0.0.1 ou para o endereço IPv4 do meu servidor, ele não exibirá nenhum website.

Meu /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       
    
por Mato 24.12.2013 / 14:46

3 respostas

23

O fato de o netstat mostrar apenas o tcp6 aqui não é o problema. Se você não especificar um endereço para escutar, o apache escutará todas as famílias de endereços suportadas usando um único soquete (por motivos de design, o sshd usa um soquete exclusivo por endereço e família de endereços, portanto, mostrando duas vezes em sua saída netstat) .

Aqui está um dos meus sistemas, mostrando o apache tendo apenas soquetes tcp6, e ainda funcionando bem via IPv4 e IPv6.

woodpecker ~ # netstat -anp |grep apache
tcp6       0      0 :::80    :::*       LISTEN      1637/apache2        
tcp6       0      0 :::443   :::*       LISTEN      1637/apache2        
woodpecker ~ # wget http://127.0.0.1/ -O /dev/null
--2013-12-25 08:52:38--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45 [text/html]
...
# wget http://[::1]/ -O /dev/null
--2013-12-25 08:53:00--  http://[::1]/
Connecting to [::1]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45 [text/html]
...

Se você executar wget http://127.0.0.1/ -O - no servidor, o que acontece? Ele se conecta com sucesso? Ele retorna o HTML bruto para seu website como esperado?

    
por 25.12.2013 / 09:59
3

Isto irá lidar apenas com conexões IPV4:

Listen 0.0.0.0:80
Listen 192.0.2.1:80 

link

    
por 21.10.2015 / 12:05
-1

*

wget http://127.0.0.1/ -O /dev/null

representa a conexão com o servidor local sem lidar com IPv4 ou IPv6, se você alterar o host local (ou 127.0.0.1) para o endereço IP IPv4 real deste servidor, não será possível wget nada porque a conexão foi negada.

Tente descrever seu IP nos arquivos de configuração: NameVirtualHost: 80 Ouça: 80

    
por 13.07.2015 / 12:53