Saya telah menginstal server Apache di komputer Windows 7 saya. Saya dapat menampilkan index.php default dengan mengetikkan http: // localhost / di baris alamat browser saya.
Namun, saya masih tidak dapat melihat halaman ini dengan mengetik alamat IP komputer saya (tidak secara lokal (dari komputer yang sama) tidak secara global (dari komputer lain yang terhubung ke Internet)).
Saya diberitahu bahwa saya perlu membuka port 80. Saya melakukannya (dengan cara yang dijelaskan di sini ) tetapi tidak menyelesaikan masalah.
Pertama-tama saya ingin memeriksa port mana yang dibuka dan mana yang tidak. Misalnya saya tidak yakin port 80 saya sudah ditutup sebelum saya coba buka. Saya juga tidak yakin itu dibuka setelah saya mencoba membukanya.
Saya mencoba menjalankan server web yang sangat sederhana yang ditulis dengan Python. Untuk itu saya menggunakan port 81 dan berhasil! Dan saya tidak mencoba membuka port 81. Jadi, dibuka secara default. Jadi, jika 81 dibuka secara default, mengapa 80 tidak? Atau itu?
INFORMASI TAMBAHAN:
1. Dalam file httpd.conf saya, saya memiliki "Dengarkan 80".
2. Situs ini memberi tahu saya bahwa port 80 di komputer saya dibuka.
3. Saya mendapat respons berbeda jika saya mencoba http: // myip: 80 dan http: // myip: 81 . Dalam browser kasus terakhir (Chrome) menulis kepada saya bahwa tautan rusak. Dalam kasus pertama yang saya dapatkan: Terlarang Anda tidak memiliki izin untuk mengakses / di server ini.
4. IE menulis bahwa "Situs web menolak untuk menampilkan halaman web ini".
Jawaban:
Jika Anda baru saja memeriksa port Anda dari luar. Gunakan alat ini:
http://www.yougetsignal.com/tools/open-ports/
Ini akan berusaha untuk terhubung ke alamat IP Anda, pada port spesifik, dan memberi tahu Anda apakah itu terbuka atau tertutup ke dunia luar.
Masalah lokal juga? Kedengarannya seperti firewall Windows 7 memotong Anda. Tambahkan pengecualian dengan tutorial ini ...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
sumber
localhost
dan bukan dari komputer lain.Menjalankan
netstat -a -n
atauss -a -n
dari prompt perintah akan menampilkan semua koneksi jaringan terbuka dan port mendengarkan pada mesin Anda.0.0.0.0:80
akan berarti bahwa ia mendengarkan pada port80
semua alamat ip (localhost dan alamat IP publik / pribadi Anda) di mana seperti127.0.0.1:80
itu berarti hanya mendengarkan di localhost. Anda dapat menambahkan-b
perintah dan itu akan menunjukkan yang dapat dieksekusi menggunakan port itu. Anda bisa mendapatkan informasi yang sama menggunakan Resource Monitor di Windows 7 pada bagian Listening Ports pada tab Network.sumber
Jika Anda ingin melihat apakah itu terbuka dari server lain, Anda bisa
telnet serverName 80
dan melihat apakah sesi terbuka. Jika tidak, maka server tidak mendengarkan, atau port diblokir oleh firewall.Jika terbuka dan kemudian ditutup segera, setidaknya windows 2003, maka perangkat lunak (seperti Exchange) mungkin tidak dikonfigurasi untuk mendengarkan pada antarmuka atau IP tertentu, tetapi sedang mendengarkan pada port lain. Saya telah melihat IIS berperilaku seperti ini karena itu bodoh, Apache mungkin tidak.
sumber
Kau menulis:
Meskipun ini mungkin terdengar aneh, Anda sebenarnya tidak memiliki masalah dengan port terbuka (tetapi dengan konfigurasi Apache).
Pesan "Terlarang" itu berasal dari server Apache Anda; itu berarti server web Anda dapat diakses dari Internet.
Anda harus mengonfigurasi Apache untuk memungkinkan penayangan ke semua host - jika tidak mereka akan mendapatkan halaman "Terlarang". IIRC, Apache pada awalnya diatur untuk hanya mengizinkan permintaan dari komputer lokal.
Di suatu tempat di konfigurasi Apache Anda, mungkin ada bagian seperti ini (direktori sebenarnya mungkin berbeda):
Jika Anda ingin komputer mana pun dapat melihat halaman Anda, Anda perlu mengubah
Deny from all
keAllow from all
. Lihat dokumentasi modul akses untuk info lebih lanjut .sumber
Untuk melihat port terbuka, Anda mungkin harus menggunakan nmap. Mereka memiliki versi Windows: http://nmap.org/dist/nmap-5.21-setup.exe
Ini tidak cukup jika Anda melihat port 80 Anda terbuka dari localhost - mungkin ada sesuatu yang menghalangi jika Anda mencobanya dari tempat lain, itu sebabnya saya merekomendasikan nmap
Dari klien yang Anda ketik: nmap ip-of-your-server
sumber
Jika Anda ingin menguji ini di jaringan lokal Anda, unduh nmap. Jika Anda ingin melihat cuaca, port dapat diakses oleh dunia luar, jalankan pemindaian di https://www.grc.com/x/ne.dll?bh0bkyd2
sumber
Port server dapat diikat ke satu alamat IP atau ke setiap alamat IP yang tersedia. Kedengarannya seperti instalasi Apache Anda diatur untuk mengikat hanya ke 127.0.0.1, dan Anda perlu mengaturnya untuk mengikat ke *. Di httpd.conf Anda (di direktori conf Apache), cari baris seperti
Listen localhost:80
dan ubah keListen 80
.sumber
telnet <host> <port>
adalah temanmu Ini memiliki keutamaan diinstal pada hampir setiap komputer di dunia.Suntingan setelah membaca kembali pertanyaan:
Berikut ini beberapa tip diagnostik yang bermanfaat
Jika Anda dapat mengakses situs melalui localhost, tetapi tidak melalui IP situs-lokal Anda (192.168. *) dari host lain di jaringan Anda, itu mungkin masalah windows firewall.
jika Anda dapat mengakses situs dari mesin situs-lokal lain, tetapi tidak dari internet ke IP publik Anda, itu adalah masalah konfigurasi router / port-forwarding.
sumber
Dari jenis prompt perintah:
... atau IP Anda: 80. Ini akan memberi tahu Anda jika port 80 terbuka pada mesin Anda. Sekarang jika Anda ingin memeriksa dan melihat apakah Anda dapat mengaksesnya dari luar jaringan Anda akan menentukan apakah Anda memiliki semacam firewall di tempat. Jika Anda melakukannya, Anda perlu meneruskan port 80 ke server web Anda.
sumber
Jika Anda menggunakan Windows, gunakan SysInternals TCPView . Ini dapat memberi tahu Anda program mana yang menggunakan port apa.
sumber
Dalam perintah DOS:
sumber