GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wird Apache nicht in Netstat ausgeführt?

Ich spiele gerade mit Apache und ich habe es zum Laufen gebracht, das heißt, ich kann eine Verbindung zum Server herstellen, indem ich zu http://127.0.0.1 navigiere und http://192.168.1.5 Ich verwende IPv6 NICHT

Dies ist jedoch das Ergebnis von netstat

$ sudo service apache2 status
 * apache2 is running
$ netstat -an | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN

$ wget 127.0.0.1
--2014-06-26 01:32:15--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11510 (11K) [text/html]
Saving to: ‘index.html’

100%[=====================================================================================================>] 11,510      --.-K/s   in 0s      

2014-06-26 01:32:15 (161 MB/s) - ‘index.html’ saved [11510/11510]

Ich hatte erwartet, dass es auf einem normalen TCP lauscht, was es eindeutig tut!?

Bearbeiten:

$ netstat -a | grep LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 localhost:mysql         *:*                     LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:https              [::]:*                  LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     

Edit2:
Warum die Ablehnung? Was ich vermisse, kann jemand näher darauf eingehen?

Akzeptierte Antwort:

TL;DR

Apache macht erscheinen in Ihrer netstat Ausgabe, und es ist Betrieb. Deshalb Ihr wget anrufen funktioniert. Es ist jedoch an Ihre IPv6-Adresse anstelle Ihrer IPv4-Adresse gebunden. Die Adresszuordnung übernimmt bei Bedarf die Übersetzung.

Zur Dokumentation

Hier gibt es offensichtlich einen IPv6-IPv4-Fallback-Mechanismus. Tatsächlich verwende ich IPv6 in meinem lokalen Netzwerk noch nicht :

$ netstat -tunla | grep LISTEN | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN

Es ist wichtig zu beachten, dass, egal wie Sie Ihre Maschine adressieren, es am Ende immer noch derselbe Dienst und Port ist. Der Rest hängt hauptsächlich von Ihrem Browser und den DNS-Auflösungsdiensten ab. Für weitere Informationen darüber, wie Apache damit umgeht, sollten Sie jedoch einen Blick in ihre Dokumentation werfen:

Ein erschwerender Faktor für Apache-Administratoren ist, ob ein IPv6-Socket sowohl IPv4-Verbindungen als auch IPv6-Verbindungen handhaben kann oder nicht. Die Handhabung von IPv4-Verbindungen mit einem IPv6-Socket verwendet IPv4-zugeordnete IPv6-Adressen, die standardmäßig auf den meisten Plattformen erlaubt sind, aber standardmäßig auf FreeBSD, NetBSD und OpenBSD nicht erlaubt sind, um der systemweiten Richtlinie auf diesen Plattformen zu entsprechen. Auf Systemen, auf denen dies standardmäßig nicht erlaubt ist, kann ein spezieller Konfigurationsparameter dieses Verhalten für Apache ändern.

Im Grunde geht es darum, sowohl IPv4- als auch IPv6-Sockets so zu handhaben, dass die meisten Probleme im Zusammenhang mit der plattformübergreifenden Kompatibilität und der Handhabung von Sockets vermieden werden. Wie Sie lesen können, wird dieses Problem auf Linux-Plattformen wie Ubuntu mithilfe von IPv4-zugeordneten IPv6-Adressen gelöst. Die Dokumentation besagt auch:

Wenn Sie möchten, dass Apache nur IPv4-Verbindungen handhabt, unabhängig davon, was Ihre Plattform und APR unterstützen, geben Sie eine IPv4-Adresse für alle Listen-Anweisungen an.

Das würde sowas in der ports.conf geben Datei :

Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80

Dies führt zu einem der folgenden netstat Ausgänge…

$ netstat -tunla | grep LISTEN | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN 
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      127.0.0.1:80              127.0.0.1:80            LISTEN
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      192.0.2.1:80              192.0.2.1:80            LISTEN 

Ein schöner, aber IPv6-nicht-bereiter Listener. Die obige Einstellung wird normalerweise in /etc/apache2/ports.conf gesetzt (oder direkt in apache2.conf für ältere Versionen). Der Standardwert ist Listen 80 , die eine Automatik ausführt verbindlich, d. h. konform mit den in der Dokumentation angegebenen IPv6-Spezifikationen.

Verwandte:Auswirkungen der Ausführung der KDE-Anwendung in Gnome?
Ubuntu
  1. Version des aktualisierten Pakets?

  2. Apache 2.2.22 auf Ubuntu 14.04 installieren?

  3. Starten Sie Apache neu

  4. Wie kann ich sehen, in welchem ​​CPU-Kern ein Thread läuft?

  5. Ausführen von Apache als ein anderer Benutzer

So installieren Sie Apache unter CentOS 8

Apache vs. Nginx – Detaillierter Vergleich

Installieren Sie Apache Solr 8.8 auf Ubuntu 20.04

Installieren Sie Apache Solr auf Ubuntu 20.04

Installieren von Apache Spark auf Ubuntu 20.04 oder 18.04

Funktionieren 8.04 Panel Launcher nicht auf 10.04?