web-dev-qa-db-fra.com

Apache2 ne fonctionne pas sur le port TCP IPv4

J'ai besoin d'exécuter Apache2 sur mon serveur Debian 7. Mais il ne fonctionne que sur le port tcpv6, pas sur le port tcpv4. Je l'ai installé avec apt-get install. Si je vais sur localhost ou 127.0.0.1 ou sur l'adresse IPv4 de mon serveur, il n'affiche aucun site Web.

Ma /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       
24
Mato

Le fait que netstat affiche uniquement tcp6 ici n'est pas le problème. Si vous ne spécifiez pas d'adresse à écouter, Apache écoutera toutes les familles d'adresses prises en charge à l'aide d'un seul socket (pour des raisons de conception, sshd utilise un socket unique par adresse et famille d'adresses, apparaissant donc deux fois dans votre sortie netstat).

Voici l'un de mes systèmes, montrant qu'Apache n'a que des sockets tcp6, et fonctionne toujours bien via IPv4 et 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]
...

Si vous exécutez wget http://127.0.0.1/ -O - sur le serveur que se passe-t-il? Se connecte-t-il avec succès? Renvoie-t-il le HTML brut de votre site Web comme prévu?

33
robbat2

Cela gérera uniquement les connexions IPV4:

Listen 0.0.0.0:80
Listen 192.0.2.1:80 

https://httpd.Apache.org/docs/2.2/bind.html#ipv6

3
wzs1989
  1. 127.0.0.1 est local sur une machine uniquement, vous devez être sur le serveur lui-même dans un navigateur pour utiliser l'adresse IP/l'adresse de bouclage local;

  2. Vous pourriez avoir un pare-feu bloquant les ports;

  3. Assurez-vous qu'Apache fonctionne et fonctionne correctement, consultez les journaux d'erreurs;

  4. Vérifiez toutes vos configurations Apache;

  5. Hébergez-vous à partir du répertoire racine www ou du répertoire utilisateur public_html?

  6. Vérifiez le propriétaire et les autorisations.


Presque l'année 2019 (Bienvenue dans le futur):

  • Par défaut, la plupart du monde utilise ipv6 et en cas d'échec, retombe sur ipv4;

  • Nous avons maintenant des tunnels ipv4 sur ipv6, et vice versa;

  • La plupart des systèmes d'exploitation, des programmes, des clients et des serveurs le font principalement maintenant;

  • Bienvenue dans le monde de plus de NAT et de devoir dépendre maintenant de pare-feu/filtres directement sur votre appareil;

  • Je recommanderais d'essayer de garder vos systèmes tous deux empilés, prenant en charge à la fois ipv4 et ipv6, donc lorsque le commutateur magique se produit, vous êtes toujours opérationnel. Mon système d'exploitation, mon réseau, même mon FAI est double pile de bout en bout. Je pourrais désactiver complètement ipv4 si je le voulais, mais ce qui existe pourrait ne plus fonctionner si aucun tunnel n'existe pour ipv6 depuis ipv4.

1
cdmlb