GNU/Linux >> Znalost Linux >  >> Ubuntu

Nevidíte, že Apache běží v Netstatu?

Právě si hraji s Apache a mám to zprovozněno, to znamená, že se mohu připojit k serveru procházením na http://127.0.0.1 a http://192.168.1.5 NEPOUŽÍVÁM IPv6

Přesto je to výsledek 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]

Očekával jsem, že bude naslouchat na běžném TCP, což jasně dělá!?

Upravit:

$ 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     

Úprava2:
Proč hlasovat proti? Co mi chybí, může to někdo upřesnit?

Přijatá odpověď:

TL;DR

Apache dělá zobrazí se ve vašem netstat výstup a je běh. Proto váš wget volání funguje. Je však vázán na vaši adresu IPv6 namísto vaší adresy IPv4. Mapování adres se v případě potřeby postará o překlad.

Přejít na dokumenty

Zjevně zde existuje nějaký záložní mechanismus IPv6-IPv4. Ve skutečnosti zatím IPv6 ve své místní síti nepoužívám:

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

Je důležité si uvědomit, že bez ohledu na to, jak svůj stroj oslovíte, je to nakonec stále stejná služba a port. Zbytek je především na vašem prohlížeči a službách rozlišení DNS. Pro více informací o tom, jak s tím Apache nakládá, se však možná budete chtít podívat do jejich dokumentace:

Jedním komplikujícím faktorem pro administrátory Apache je, zda soket IPv6 dokáže zpracovat jak připojení IPv4, tak připojení IPv6. Zpracování připojení IPv4 pomocí soketu IPv6 používá adresy IPv6 mapované IPv4, které jsou ve výchozím nastavení povoleny na většině platforem, ale ve výchozím nastavení jsou zakázány na FreeBSD, NetBSD a OpenBSD, aby odpovídaly celosystémové politice na těchto platformách. Na systémech, kde je to ve výchozím nastavení zakázáno, může toto chování pro Apache změnit speciální konfigurační parametr.

V zásadě se jedná o manipulaci se sokety IPv4 i IPv6 způsobem, který zabrání většině problémů souvisejících s kompatibilitou mezi platformami a manipulací se sokety. Jak si můžete přečíst, na platformách Linux, jako je Ubuntu, je tento problém vyřešen pomocí IPv6 mapovaných adres IPv4. V dokumentaci je také uvedeno:

Pokud chcete, aby Apache zpracovával pouze připojení IPv4, bez ohledu na to, co bude vaše platforma a APR podporovat, zadejte adresu IPv4 ve všech direktivách Listen.

Což by v ports.conf dalo něco takového soubor :

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

Výsledkem je jeden z následujících netstat výstupy…

$ 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 

Krásný, ale IPv6 nepřipravený posluchač. Výše uvedené nastavení se obvykle nastavuje v /etc/apache2/ports.conf (nebo přímo v apache2.conf pro starší verze). Výchozí hodnota je Listen 80 , která provádí automatické vázání, tj. vyhovující specifikacím IPv6 uvedeným v dokumentaci.

Související:Důsledky spuštění aplikace KDE v Gnome?
Ubuntu
  1. Aktivace SPDY v Apache 2.4 (Ubuntu 14.04)

  2. Restartujte Apache

  3. alternativa k netstat -s

  1. Nainstalujte PHP na Ubuntu 20.04 – běžící webový server Apache

  2. Jak restartovat Apache?

  3. Nainstalovat Apache 2.2.22 na Ubuntu 14.04?

  1. Jak zjistím, ve kterém jádru CPU běží vlákno?

  2. Spuštění Apache jako jiný uživatel

  3. Ukončit proces běžící na portu 80