Saya baru saja bermain dengan apache dan saya berhasil, yaitu saya dapat terhubung ke server dengan menjelajah ke http://127.0.0.1
dan http://192.168.1.5
saya 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 melihatnya mendengarkan pada TCP biasa yang jelas-jelas melakukannya!?
Sunting:
$ 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:
Kenapa suara down? Apa yang saya lewatkan, bisakah seseorang menjelaskannya?
Jawaban yang Diterima:
TL;DR
Apache bisa muncul di netstat
keluaran, dan itu adalah berlari. Itu sebabnya wget
Anda panggilan bekerja. Namun, itu terikat ke alamat IPv6 Anda, bukan alamat IPv4 Anda. Pemetaan alamat menangani terjemahan bila diperlukan.
Mencari dokumen
Jelas ada beberapa mekanisme mundur 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 menangani mesin Anda, pada akhirnya tetaplah layanan dan port yang sama. Selebihnya tergantung pada browser dan layanan resolusi DNS Anda. Namun, untuk informasi lebih lanjut tentang bagaimana Apache menangani ini, Anda mungkin ingin melihat dokumentasi mereka :
Salah satu faktor rumit 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 di sebagian besar platform, tetapi tidak diizinkan secara default di FreeBSD, NetBSD, dan OpenBSD, agar sesuai dengan 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 Anda baca, pada platform Linux seperti Ubuntu, masalah ini diselesaikan dengan menggunakan alamat IPv6 yang dipetakan IPv4. Dokumentasi juga menyatakan :
Jika Anda ingin Apache hanya menangani koneksi IPv4, terlepas dari apa yang akan didukung oleh platform dan APR Anda, tentukan alamat IPv4 di semua arahan Listen.
Yang akan memberikan sesuatu seperti ini di ports.conf
berkas :
Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80
Menghasilkan salah satu dari netstat
berikut ini keluaran…
$ 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. Setting di atas biasanya diatur di /etc/apache2/ports.conf
(atau langsung di apache2.conf
untuk versi yang lebih lama). Nilai defaultnya adalah Listen 80
, yang melakukan otomatis mengikat, yaitu sesuai dengan spesifikasi IPv6 yang diberikan dalam dokumentasi.