Bagaimana cara menentukan apakah port terbuka di server Windows? [Tutup]


478

Saya mencoba menginstal situs di bawah port alternatif di server, tetapi port mungkin ditutup oleh firewall. Apakah ada cara untuk keluar atau masuk, pada port tertentu, untuk melihat apakah port tersebut terbuka?


Jawaban:


732

Dengan asumsi bahwa itu adalah port TCP (bukan UDP) yang Anda coba gunakan:

  1. Di server itu sendiri, gunakan netstat -anuntuk memeriksa untuk melihat port mana yang mendengarkan.

  2. Dari luar, cukup gunakan telnet host port(atau telnet host:portpada sistem Unix) untuk melihat apakah koneksi ditolak, diterima, atau timeout.

Pada tes terakhir itu, maka secara umum:

  • koneksi ditolak berarti tidak ada yang berjalan di port itu
  • diterima berarti ada sesuatu yang berjalan di port itu
  • batas waktu berarti bahwa firewall memblokir akses

Pada Windows 7 atau Windows Vista, opsi default 'telnet' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan, atau file batch. Untuk mengatasinya, cukup aktifkan: Klik * Mulai ** → Control PanelProgramMengaktifkan atau menonaktifkan Fitur Windows . Dalam daftar, gulir ke bawah dan pilih Telnet Client dan klik OK.


312
Dalam opsi def7ul Win7 atau Vista 'telnet' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch. Untuk mengatasinya, cukup aktifkan: Klik Mulai, Panel Kontrol, Program, lalu nyalakan atau matikan Fitur Windows. Dalam daftar, gulir ke bawah dan pilih Telnet Client dan klik OK
volody

12
@PankajKohli menggunakan klien telnet Putty sebagai gantinya. Tidak perlu diinstal.
Colin Pickard

52
Apa yang Could not open connection to the host, on port *x*: Connect failedditunjukkan?
Kenny Evitt

2
@Alnitak Saya hanya ingin memeriksa karena saya pikir ini sudah menjawab pertanyaan saya. Kapan saya telnet api-3t.sandbox.paypal.com 443mendapatkannya? Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failedApakah ini karena firewall memblokirnya?
Popeye

2
ada perbedaan jika Anda membuka telnet.exe dan kemudian ketik o host portvs command line terbuka (cmd.exe) dan kemudian ketiktelnet host port
Pawel Cioch

185

Di Windows Anda bisa menggunakan

netstat -na | find "your_port"

untuk mempersempit hasilnya. Anda juga dapat menyaring untuk LISTENING, ESTABLISHED, TCPdan semacamnya. Pikiran itu case-sensitive sekalipun.


4
Anda tidak dapat menggunakan find seperti ini, ini akan mencari file, Anda harus menggunakan grep
Moataz Elmasry

38
@ MoatazElmasry, itu benar di Linux, tapi ini di server Windows, di mana find adalah perintah yang benar. Grep tidak tersedia di Windows. Saya hanya menjalankan perintah persis yang disebutkan di sini, dan itu bekerja dengan sempurna.
Ben Wyatt

4
Ketika saya menggunakan perintah itu yaitu netstat -an | menemukan "19345", saya tidak mendapatkan hasil apa pun. apa artinya?
nanosoft

14
findtidak bekerja di Windows 10 untuk saya, tetapi netstat -na | findstr "8080"bekerja
arun

6
tidak ada yang terjadi, tidak dengan find atau findstr
usefulBee

85

Jika Anda memeriksa dari luar, bukan dari server itu sendiri, dan Anda tidak ingin repot menginstal telnet (karena tidak datang dengan versi Windows terakhir) atau perangkat lunak lain, maka Anda memiliki PowerShell asli:

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

(Sayangnya ini hanya berfungsi dengan PowerShell 4.0 atau lebih baru. Untuk memeriksa versi PowerShell Anda, ketik $PSVersionTable.)

PS: Catatan, hari ini ada beberapa klaim di twittersphere yang mengisyaratkan bahwa jawaban ini dapat ditingkatkan dengan menyebutkan "Tes-Koneksi" dari PowerShell Core, atau pintasan "tnc". Lihat https://twitter.com/david_obrien/status/1214082339203993600 dan bantu saya mengedit jawaban ini untuk memperbaikinya!


(Jika Anda memiliki PSVersion <4.0, Anda kurang beruntung. Periksa tabel ini:

Masukkan deskripsi gambar di sini

Meskipun Anda dapat memutakhirkan versi PowerShell Anda dengan menginstal Windows Management Framework 4.0 , itu tidak membantu saya, cmdlet Test-NetConnection masih belum tersedia).


3
Ini jawaban terbaik. Menginstal telnet tidak selalu mudah di server orang lain!
TrojanName

Tentunya harus menjadi jawaban terbaik.
QtRoS

1
Ini adalah pilihan yang lebih dapat diandalkan daripada telnet, telnet hanya akan menggantung tidak melaporkan apa pun sementara ini melaporkan bahwa port tersedia dalam kasus saya.
kapak

42

Pada mesin Windows Anda dapat menggunakan PortQry dari Microsoft untuk memeriksa apakah suatu aplikasi sudah mendengarkan pada port tertentu menggunakan perintah berikut:

portqry -n 11.22.33.44 -p tcp -e 80

4
Port yang dipasangi firewall umumnya akan muncul sebagai "FILTERED".
dlanod

Anda dapat menggunakan alat ini untuk memeriksa port UDP juga:portqry -n 11.22.33.44 -p udp -e 19132
Antony

41

Saya memang suka itu:

netstat -an | find "8080" 

dari telnet

telnet 192.168.100.132 8080

Dan pastikan firewall dimatikan pada mesin itu.


Ketika saya menggunakan perintah itu yaitu netstat -an | menemukan "19345", saya tidak mendapatkan hasil apa pun. apa artinya? -
nanosoft

2
itu artinya pelabuhan ini gratis
Sarvar Nishonboev

Saya mendapatkan pesan kesalahan ketika saya menjalankannya netstat -an | find "8080",no such file named "8080"
Pragyaditya Das

24

Jika telnettidak tersedia, unduh Putty . Ini adalah klien Telnet, SSH, dll yang jauh lebih unggul dan akan berguna dalam banyak situasi, tidak hanya yang satu ini, terutama jika Anda mengelola server.


Ya, tetapi tidak untuk menempelkan kode Forth, katakanlah, dengan AmForth (kecuali menggunakan Putty dalam kombinasi dengan Edit Overflow ).
Peter Mortensen


12

Gunakan ini jika Anda ingin melihat semua port yang digunakan dan mendengarkan pada server Windows:

netstat -an |find /i "listening"

Lihat semua port terbuka, dengar, dan didirikan:

netstat -a




1

Inilah yang bekerja untuk saya:

  • Buka prompt perintah
  • Tipe telnet
  • Microsoft Telnet> buka <nama host atau alamat IP> <spasi> <port>

Ini akan mengkonfirmasi apakah port dibuka.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.