it-swarm.com.de

Apache2 wird nicht auf dem IPv4-TCP-Port ausgeführt

Ich muss Apache2 auf meinem Debian 7-Server ausführen. Es läuft jedoch nur auf dem TCPV6-Port, nicht auf dem TCPV4-Port. Ich habe es mit apt-get install installiert. Wenn ich zu localhost oder 127.0.0.1 oder zu meiner Server-IPv4-Adresse gehe, wird keine Website angezeigt.

Mein /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

Die Tatsache, dass netstat hier nur tcp6 anzeigt, ist nicht das Problem. Wenn Sie keine Adresse angeben, die abgehört werden soll, überwacht Apache alle unterstützten Adressfamilien mit einem einzigen Socket (aus Designgründen verwendet sshd einen eindeutigen Socket pro Adress- und Adressfamilie und wird daher zweimal in Ihrer Netstat-Ausgabe angezeigt).

Hier ist eines meiner Systeme, das zeigt, dass Apache nur TCP6-Sockets hat und dennoch über IPv4 und IPv6 einwandfrei funktioniert.

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]
...

Wenn du läufst wget http://127.0.0.1/ -O - auf dem Server was passiert? Wird eine erfolgreiche Verbindung hergestellt? Gibt es den erwarteten Roh-HTML-Code für Ihre Website zurück?

33
robbat2

Dies behandelt nur IPV4-Verbindungen:

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 ist nur für einen Computer lokal. Sie müssen sich in einem Browser auf dem Server selbst befinden, um die lokale Loopback-IP/-Adresse verwenden zu können.

  2. Möglicherweise blockiert eine Firewall die Ports.

  3. Stellen Sie sicher, dass Apache ordnungsgemäß ausgeführt wird und funktioniert. Überprüfen Sie die Fehlerprotokolle.

  4. Überprüfen Sie alle Ihre Apache-Konfigurationen.

  5. Hosten Sie aus dem Stammverzeichnis www oder dem Verzeichnis public_html des Benutzers?

  6. Überprüfen Sie den Eigentümer und die Berechtigungen.


Fast das Jahr 2019 (Willkommen in der Zukunft):

  • Standardmäßig verwendet der größte Teil der Welt IPv6. Wenn dies fehlschlägt, wird auf IPv4 zurückgegriffen.

  • Wir haben jetzt IPv4-Tunnel über IPv6 und umgekehrt.

  • Die meisten Betriebssysteme, Programme, Clients und Server tun dies jetzt meistens.

  • Willkommen in der Welt ohne NATs und Sie müssen sich jetzt auf die Firewall/Filter direkt auf Ihrem Gerät verlassen.

  • Ich würde empfehlen, zu versuchen, Ihre Systeme alle doppelt gestapelt zu halten und gleichzeitig IPv4 und IPv6 zu unterstützen. Wenn also der magische Wechsel erfolgt, sind Sie immer noch betriebsbereit. Mein Betriebssystem, mein Netzwerk und sogar mein ISP sind durchgehend doppelt gestapelt. Ich könnte ipv4 vollständig ausschalten, wenn ich wollte, aber was da draußen funktioniert, funktioniert möglicherweise nicht mehr, wenn keine Tunnel von ipv4 zurück zu ipv6 existieren.

1
cdmlb