Pada platform Windows, opsi bawaan apa yang harus saya periksa apakah port (3306, misalnya) pada mesin lokal saya (seperti pada localhost
), sedang diblokir?
Pada platform Windows, opsi bawaan apa yang harus saya periksa apakah port (3306, misalnya) pada mesin lokal saya (seperti pada localhost
), sedang diblokir?
Jawaban:
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 memulai pencatatan firewall windows dan memeriksa log untuk koneksi yang terputus
Ada satu perintah lagi untuk memeriksa keadaan firewall
(Pembaruan untuk pengguna Windows 7 - sebagaimana dimaksud di Nick
bawah ini - gunakan firewall netsh advfirewall )
keadaan firewall menunjukkan netsh
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, konfigurasi firewall harus menunjukkannya 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 melihat itu, Anda harus bekerja dengan aplikasi Anda (MySQL) untuk memulainya.
|find "3306"
ke perintah, misalnyaC:\Windows\System32>netstat -an |find "3306"
NETSTAT
akan memberi tahu Anda jika port sedang mendengarkan tetapi tidak akan memberi tahu Anda jika port terbuka untuk dunia luar. Apa yang saya maksudkan dengan ini adalah yang NETSTAT
mungkin 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
sendirian.
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 grafis 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 ditentukanFiltered
berarti menerima paket pengakuan TCP dengan set flag Reset yang kemungkinan mengindikasikan masalah firewall atau perangkat lunakNot Listening
berarti tidak menerima respons sama sekalitelnet
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 akan memberi Anda indikasi cepat jika port 3306
di localhost
merespons.
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
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 bahkan dapat mencegah tindakan pertama.