Ich muss Apache2 auf meinem Debian 7-Server ausführen. Aber es läuft nur auf dem TCP / V6-Port, nicht auf dem TCP / V4-Port. Ich habe es mit apt-get install installiert. Wenn ich zu localhost oder 127.0.0.1 oder meiner Server-IPv4-Adresse gehe, werden keine Websites angezeigt.
Meine /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
quelle
quelle
Listen 80
zu ändernListen 0.0.0.0:80
. Weitere Informationen finden Sie in der Dokumentation httpd.apache.org/docs/2.2/bind.html .sudo iptables -nvL
und postensudo sestatus
? Ich denke, Sie haben eine lokale Firewall, die verhindert.a2enmod php5
sollte es für dich tun.::
.Antworten:
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 über einen einzelnen Socket (aus Designgründen verwendet sshd einen eindeutigen Socket pro Adresse und Adressfamilie und wird daher in Ihrer netstat-Ausgabe zweimal angezeigt).
Hier ist eines meiner Systeme, das zeigt, dass Apache nur über TCP6-Sockets verfügt und dennoch über IPv4 und IPv6 einwandfrei funktioniert.
Wenn Sie
wget http://127.0.0.1/ -O -
auf dem Server laufen, was passiert dann? Wird die Verbindung erfolgreich hergestellt? Gibt es den Roh-HTML-Code für Ihre Website wie erwartet zurück?quelle
INADDR_ANY
und ausIN6ADDR_ANY_INIT
. Aber heute habe ich ein wirklich merkwürdiges Verhalten gesehen. Keine Firewall-Änderungen, keine Apache-Änderungen, aber irgendwie können Remote-Hosts nur über IPv6 eine Verbindung herstellen - ein Problem für diejenigen, die noch kein IPv6 haben. Es ist sicherlich etwas, woran ich arbeiten werde, aber Sie sind absolut korrekt (obwohl die von Ihnen gegebene Aufforderung in meinem Fall leider nicht zutrifft).Dies behandelt nur IPV4-Verbindungen:
https://httpd.apache.org/docs/2.2/bind.html#ipv6
quelle
127.0.0.1 ist nur für einen Computer lokal. Sie müssen sich auf dem Server selbst in einem Browser befinden, um die lokale Loopback-IP / -Adresse zu verwenden.
Möglicherweise blockiert eine Firewall die Ports.
Stellen Sie sicher, dass Apache ausgeführt wird und ordnungsgemäß funktioniert, und überprüfen Sie die Fehlerprotokolle.
Überprüfen Sie alle Ihre Apache-Konfigurationen;
Hostest du aus dem Stammverzeichnis www oder dem Benutzerverzeichnis public_html?
Ü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, in der es keine NATs mehr gibt und in der Sie jetzt auf Firewall / Filter für Ihr Gerät angewiesen sind.
Ich würde empfehlen, dass Sie versuchen, Ihre Systeme alle doppelt gestapelt zu halten, wobei sowohl ipv4 als auch ipv6 gleichzeitig unterstützt werden. Mein Betriebssystem, Netzwerk und sogar mein ISP sind durchgängig doppelt gestapelt. Ich könnte ipv4 vollständig ausschalten, wenn ich wollte, aber was da draußen ist, könnte nicht mehr funktionieren, wenn keine Tunnel mehr von ipv4 zu ipv6 existieren.
quelle
*
* steht für die Verbindung zum lokalen Server ohne IPv4- oder IPv6-Verarbeitung. Wenn Sie localhost (oder 127.0.0.1) in die echte IPv4-IP-Adresse dieses Servers ändern, kann keine Verbindung hergestellt werden, da die Verbindung verweigert wird.
Versuchen Sie, Ihre IP in Konfigurationsdateien zu beschreiben: NameVirtualHost: 80 Listen: 80
quelle