Tidak melihat apache berjalan di netstat

10

Saya hanya bermain dengan apache dan saya membuatnya berfungsi, yaitu saya dapat terhubung ke server dengan menjelajah ke http://127.0.0.1dan http://192.168.1.5saya TIDAK menjalankan IPv6

Namun ini adalah hasil dari 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]

Saya berharap untuk melihatnya mendengarkan pada TCP reguler yang jelas !?

Edit:

$ 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     

Sunting2: Mengapa memilih suara? Apa yang saya lewatkan dapat seseorang uraikan?

meccooll
sumber
coba netstat -a | grep DENGARKAN dan poskan keluaran
Lety
Diposting hasilnya
meccooll
Sudah mencoba netstat -p?
muru
dua baris terakhir disebut apache yang mendengarkan pada port 80 dan 443. coba muru saran untuk melihat proses / pid.
Lety
@Lizia benar tetapi dikatakan tcp6 di kolom pertama dan :: untuk ip yang merupakan IPv6, tapi saya terhubung ke IPv4 ???
meccooll

Jawaban:

17

TL; DR

Apache memang muncul di netstatoutput Anda , dan sedang berjalan. Itu sebabnya wgetpanggilan Anda berhasil. Namun, itu terikat ke alamat IPv6 Anda dan bukan IPv4 Anda. Pemetaan alamat menangani terjemahan bila perlu.

Pergi untuk dokumen

Jelas ada beberapa mekanisme fallback IPv6-IPv4 di sini. Faktanya, saya belum menggunakan IPv6 di jaringan lokal saya:

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

Penting untuk dicatat bahwa tidak peduli bagaimana Anda mengatasi mesin Anda, tetap saja layanan dan port yang sama pada akhirnya. Sisanya sebagian besar tergantung pada browser Anda dan layanan resolusi DNS. Namun, untuk informasi lebih lanjut tentang cara Apache menangani ini, Anda mungkin ingin melihat dokumentasi mereka :

Satu faktor yang menyulitkan bagi administrator Apache adalah apakah soket IPv6 dapat menangani koneksi IPv4 dan koneksi IPv6 atau tidak. Menangani koneksi IPv4 dengan soket IPv6 menggunakan alamat IPv6 yang dipetakan IPv4, yang diizinkan secara default pada sebagian besar platform, tetapi tidak diizinkan secara default pada FreeBSD, NetBSD, dan OpenBSD, untuk mencocokkan kebijakan seluruh sistem pada platform tersebut. Pada sistem yang tidak diizinkan secara default, parameter konfigurasi khusus dapat mengubah perilaku ini untuk Apache.

Pada dasarnya, ini tentang menangani soket IPv4 dan IPv6 dengan cara yang akan menghindari sebagian besar masalah yang terkait dengan kompatibilitas lintas platform dan penanganan soket. Seperti yang dapat Anda baca, pada platform Linux seperti Ubuntu, masalah ini diselesaikan menggunakan alamat IPv6 yang dipetakan IPv4 . Dokumentasi juga menyatakan:

Jika Anda ingin Apache hanya menangani koneksi IPv4, terlepas dari apa platform Anda dan APR akan mendukung, tentukan alamat IPv4 pada semua arahan Dengarkan.

Yang akan memberikan sesuatu seperti ini di ports.conffile:

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

Menghasilkan salah satu dari netstatoutput berikut ...

$ 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 

Pendengar yang cantik namun belum siap IPv6. Pengaturan di atas biasanya diatur dalam /etc/apache2/ports.conf(atau langsung apache2.confuntuk versi yang lebih lama). Nilai default adalah Listen 80, yang melakukan pengikatan otomatis , yaitu sesuai dengan spesifikasi IPv6 yang diberikan dalam dokumentasi.

John WH Smith
sumber
1
Huh tidak tahu tentang pemetaan alamat jadi saya harus berhati-hati untuk membuka port pada IPv6 dan IPv4.
meccooll
bergabung dengan "askubuntu" untuk mengunggah pertanyaan dan jawaban ini !!!
Prem