pengembangan-web-mp.com

Bagaimana cara memeriksa apakah port diblokir pada mesin Windows?

Pada platform Windows, opsi asli apa yang harus saya periksa apakah port (3306, misalnya) pada mesin lokal saya (seperti dalam localhost), sedang diblokir?

109
Boris Pavlović

Karena Anda menggunakan mesin Windows, hal-hal ini dapat dilakukan,

  • Jalankan perintah berikut dan cari pendengar ": 3306" (Anda tidak menyebutkan UDP/TCP). Ini akan mengkonfirmasi ada sesuatu yang berjalan di port.

    netstat -a -n

  • Setelah ini, jika Anda mengharapkan koneksi masuk pada port ini dan merasa bahwa firewall mungkin memblokirnya, Anda bisa mulai logging windows firewall dan periksa log untuk koneksi yang terputus

    • Pergi ke Windows Firewall, Pengaturan lanjutan
    • Klik tombol Pengaturan di sebelah "Sambungan Area Lokal"
    • Pilih "Log paket yang dijatuhkan"
    • Lihatlah lokasi file log (jika tidak ada tentukan satu)
    • Klik OK
    • Sekarang, ketika upaya koneksi dilakukan (dengan asumsi Anda tahu kapan ini dilakukan), lihat file log untuk setetes pada port 3306.
    • Jika ini terlihat, Anda ingin menambahkan pengecualian untuk port ini.
  • Ada satu perintah lagi untuk memeriksa keadaan firewall
    (Pembaruan untuk pengguna Windows 7 - sebagaimana dimaksud oleh Nick di bawah ini - gunakan netsh advfirewall firewall )

    keadaan acara firewall netsh

    • ini akan mencantumkan port yang diblokir serta port mendengarkan aktif dengan asosiasi aplikasi
  • Perintah ini akan membuang detail konfigurasi firewall Windows

    konfigurasi firewall netsh


Jika Anda memiliki blok aktif (koneksi masuk dijatuhkan oleh firewall) setelah Anda mulai masuk, Anda akan melihatnya di log.

Jika Anda menjalankan aplikasi/layanan yang mendengarkan 3306, the konfigurasi firewall harus menunjukkan itu Diaktifkan. Jika ini tidak terlihat, Anda mungkin telah melewatkan menambahkan pengecualian dengan firewall untuk mengizinkan aplikasi/layanan ini.

Akhirnya, port 3306 biasanya digunakan untuk MySQL. Jadi, saya kira Anda menjalankan server MySQL pada mesin windows ini. Karena itu Anda harus melihat pendengar untuk 3306 menerima koneksi masuk. Jika Anda tidak melihatnya, Anda harus bekerja dengan aplikasi Anda (MySQL) untuk memulainya.

113
nik

NETSTAT akan memberi tahu Anda jika portnya mendengarkan tetapi tidak akan memberi tahu Anda jika portnya adalah buka ke dunia luar. Yang saya maksudkan adalah NETSTAT dapat menunjukkan bahwa 0.0.0.0 MENDENGARKAN pada port 3306 tetapi firewall mungkin masih memblokir port yang mencegah koneksi luar; jadi tidak cukup hanya mengandalkan NETSTAT sendiri.

Cara terbaik untuk memeriksa apakah port diblokir adalah dengan melakukan pemindaian port dari mesin klien.

Ada banyak cara untuk melakukan pemindaian port tetapi karena Anda menyebutkan sedang menggunakan Windows maka saya akan menyarankan utilitas baris perintah Microsoft PortQry dan versi Grafik PortQryUI

Untuk menguji semua port terbuka:

portqry.exe -n #.#.#.#   

Untuk menguji port tertentu:

portqry.exe -n #.#.#.# -e #

Misalnya untuk menguji antarmuka Web router di 192.168.1.1:

portqry.exe -n 192.168.1.1 -e 80

Yang mengembalikan:

TCP port 80 (http service): LISTENING

Sedangkan pengujian pada mesin lokal tanpa HTTPD berjalan kembali:

TCP port 80 (http service): NOT LISTENING

Menggunakan utilitas PortScan, Anda akan mendapatkan salah satu dari 3 hasil.

  • Listening berarti server mendengarkan pada port yang ditentukan
  • Filtered berarti menerima paket pengakuan TCP dengan set flag Reset yang kemungkinan mengindikasikan masalah firewall atau perangkat lunak
  • Not Listening berarti tidak menerima respons sama sekali

telnet adalah opsi baris perintah lain yang biasanya diinstal pada OS secara default. Utilitas baris perintah ini dapat digunakan cara cepat untuk melihat apakah port merespons permintaan jaringan.

Untuk menggunakan telnet Anda cukup mengeluarkan perintah berikut dari Prompt perintah:

telnet localhost 3306

Perintah di atas seharusnya memberi Anda indikasi cepat jika port 3306 pada localhost merespons.

25
Tim Penner

Karena PowerShell 4.0 Anda dapat menggunakan perintah Test-NetConnection

Jika Anda ingin menguji Port 3306 seperti pada contoh Anda, perintahnya adalah

Test-NetConnection -ComputerName localhost -Port 3306

dokumentasi TechNet-NetConnection

21
Marcel Janus

Jika Anda dapat melakukan telnet ke port dari mesin lokal (menggunakan alamat IP eksternal), tetapi tidak dari komputer lain - maka ia diblokir di antara keduanya.

Perhatikan bahwa firewall pada mesin lokal Anda bisa mencegah bahkan tindakan pertama.

5
Brent