Baris perintah untuk melihat port tertentu

263

Apakah ada cara untuk memeriksa status port tertentu dari baris perintah Windows? Saya tahu saya bisa menggunakan netstat untuk memeriksa semua port tetapi netstat lambat dan melihat port tertentu mungkin tidak.

pengguna1580018
sumber
6
netstathanya lambat jika Anda tidak menggunakan -nsaklar, yang berarti harus melakukan banyak pencarian DNS.
Marquis of Lorne

Jawaban:

283

Berikut ini adalah solusi mudah menemukan port ...

Dalam cmd:

netstat -na | find "8080"

Dalam bash:

netstat -na | grep "8080"

Di PowerShell:

netstat -na | Select-String "8080"
Md. Naushad Alam
sumber
3
Bagaimana cara menggunakan perintah ini? Saya ingin tahu nomor port ini berfungsi atau tidak tautan: - [tautan] (https: //.localhost: 9043 / ibm / console / login.do)
Mayur Ingle
8
Juga layak menyebutkan -oflag (yaitu di -naosini) untuk memasukkan PID dari proses menggunakan port.
Steve Chambers
104

Anda dapat menggunakan netstatgabungan dengan -npbendera dan pipa ke findatau findstrperintah.

Penggunaan Dasar adalah seperti itu:

netstat -np <protocol> | find "port #"

Jadi misalnya untuk memeriksa port 80 pada TCP, Anda dapat melakukan ini: netstat -np TCP | find "80" Yang akhirnya memberikan jenis output berikut:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED

Seperti yang Anda lihat, ini hanya menunjukkan koneksi pada port 80 untuk protokol TCP.

Rivasa
sumber
73

Saya menggunakan:

netstat –aon | find "<port number>"

di sini o merupakan ID proses. sekarang Anda dapat melakukan apa pun dengan ID proses. Untuk mengakhiri proses, misalnya, gunakan:

taskkill /F /pid <process ID>
Himadri Pant
sumber
jawaban yang sederhana dan tajam, Terima kasih
Mohit Singh
69

ketika saya memiliki masalah dengan WAMP apache, saya menggunakan kode ini untuk menemukan program mana yang menggunakan port 80.

netstat -o -n -a | findstr 0.0:80

masukkan deskripsi gambar di sini

3068 adalah PID, jadi saya bisa menemukannya dari task manager dan menghentikan proses itu.

Mohsen Safari
sumber
Bagus sekali, terima kasih banyak! Khusus untuk TCP saya menggunakan berikut ini: netstat -o -nap TCP | findstr 0.0: 80
denyoha
20

Seperti disebutkan di tempat lain: gunakan netstat, dengan sakelar yang sesuai, dan kemudian filter hasilnya dengan find [str]

Paling dasar:

netstat -an | find ":N"

atau

netstat -a -n | find ":N"

Untuk menemukan pelabuhan asing, Anda dapat menggunakan:

netstat -an | findstr ":N[^:]*$"

Untuk menemukan port lokal yang mungkin Anda gunakan:

netstat -an | findstr ":N.*:[^:]*$"

Di mana N adalah nomor port yang Anda minati.

-n memastikan semua port akan numerik, yaitu tidak dikembalikan sebagaimana diterjemahkan ke nama layanan.

-a akan memastikan Anda mencari semua koneksi (TCP, UDP, mendengarkan ...)

Dalam findstring, Anda harus menyertakan titik dua, sebagai kualifikasi port, jika tidak, jumlahnya mungkin cocok dengan alamat lokal atau asing.

Anda selanjutnya dapat mempersempit pencarian menggunakan switch netstat lainnya sesuai kebutuhan ...

Bacaan lebih lanjut (^ 0 ^)

netstat /?

find /?

findstr /?
EndUzr
sumber
9
netstat -a -n | find /c "10.240.199.9:8080"

itu akan memberi Anda jumlah soket aktif pada IP dan port tertentu (nomor port Server)

Uday Singh
sumber
3
Ini tidak berfungsi untuk catu daya windows pada windows 2012 R2 dan menerima hasil sebagaiFIND: Parameter format not correct
Chaminda Bandara
6

Untuk Pengguna Windows 8: Buka Command Prompt, ketik netstat -an | cari "nomor port Anda" , masukkan.

Jika balasan datang seperti MENDENGARKAN maka port sedang digunakan, kalau tidak gratis.

Pratik Roy
sumber
2

Untuk meningkatkan respons @ EndUzr :

Untuk menemukan port asing (IPv4 atau IPv6) Anda dapat menggunakan:

netstat -an | findstr /r /c:":N [^:]*$"

Untuk menemukan port lokal (IPv4 atau IPv6) Anda dapat menggunakan:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

Di mana N adalah nomor port yang Anda minati. Sakelar "/ r" memberitahukannya untuk memprosesnya sebagai regexp. Sakelar "/ c" memungkinkan findstr untuk memasukkan spasi dalam string pencarian alih-alih memperlakukan spasi sebagai pembatas string pencarian. Ruang tambahan ini mencegah lebih lama port diperlakukan salah - misalnya, ": 80" vs ": 8080" dan masalah port munging lainnya.

Untuk membuat daftar koneksi jarak jauh ke server RDP lokal, misalnya:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

Atau untuk melihat siapa yang menyentuh DNS Anda:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

Jika Anda ingin mengecualikan port khusus lokal, Anda dapat menggunakan serangkaian pengecualian dengan "/ v" dan melepaskan karakter dengan backslash:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
shawn
sumber
1

Untuk port 80, perintahnya adalah: netstat -an | find "80" Untuk port n, perintahnya adalah: netstat -an | temukan "n"

Di sini, netstat adalah instruksi untuk mesin Anda

-a: Menampilkan semua koneksi dan mendengarkan port -n: Menampilkan semua alamat dan instruksi dalam format numerik (Ini diperlukan karena output dari -a dapat berisi nama mesin)

Kemudian, perintah find untuk "Pattern Match" output dari perintah sebelumnya.

subodhkarwa
sumber
0

Ini akan membantu Anda

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
pekerjaan
sumber
0

Di RHEL 7, saya menggunakan perintah ini untuk memfilter beberapa port di LISTEN State:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo Gonzalez
sumber
-1

Perintah ini akan menampilkan semua port dan alamat tujuan mereka:

netstat -f 
Dharmajulian
sumber
1
Permintaan itu untuk mengetahui apakah port tertentu sedang digunakan.
Ro Yo Mi
-5

Gunakan perintah lsof "lsof -i tcp: port #", berikut adalah contohnya.

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
batu333
sumber
4
Minus point karena ini bukan perintah windows. Jika tersedia di windows tidak ada diskusi tentang cara mendapatkannya.
Ro Yo Mi
1
Tidak menjawab pertanyaan OP. -1.
FractalSpace