Linie de comandă pentru căutarea unui port specific (Programare, Windows, Rețea, Port, Prompt De Comandă)

user1580018 a intrebat.

Există o modalitate de a examina starea unui port specific din linia de comandă Windows? Știu că pot folosi netstat pentru a examina toate porturile, dar netstat este lent și căutarea unui port specific probabil că nu este.

Comentarii

  • netstat este lent doar dacă nu folosiți funcția -n switch, ceea ce înseamnă că trebuie să facă multe căutări DNS. –  > Por user207421.
14 răspunsuri
Md. Naushad Alam

Aici este soluție ușoară de găsire a portului…

În cmd:

netstat -na | find "8080"

În bash:

netstat -na | grep "8080"

În PowerShell:

netstat -na | Select-String "8080"

Comentarii

  • Cum se utilizează această comandă? Vreau să știu dacă acest număr de port funcționează sau nu link:- [link]( https://.localhost:9043/ibm/console/login.do) – –  > Por Mayur Ingle.
  • De asemenea, merită să menționăm -o flag (de ex. -nao aici) pentru a include PID-ul procesului care utilizează portul. –  > Por Steve Chambers.
Rivasa

Puteți utiliza flag-ul netstat combinat cu -np flags și o țeavă către find sau findstr comenzi.

Utilizarea de bază este ca atare:

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

Astfel, de exemplu, pentru a verifica portul 80 pe TCP, puteți face astfel: netstat -np TCP | find "80"Ceea ce duce la următorul tip de ieșire:

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

După cum puteți vedea, aceasta arată doar conexiunile pe portul 80 pentru protocolul TCP.

Himadri Pant

Eu folosesc:

netstat –aon | find "<port number>"

aici o reprezintă ID-ul de proces. acum puteți face orice cu ID-ul de proces. Pentru a încheia procesul, de exemplu, folosiți:

taskkill /F /pid <process ID>

Mohsen Safari

atunci când am probleme cu WAMP apache , folosesc acest cod pentru a afla ce program folosește portul 80.

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

3068 este PID, astfel încât să îl pot găsi din Task Manager și să opresc procesul respectiv.

Comentarii

  • Foarte frumos, mulțumesc mult! În special pentru TCP folosesc următoarele: netstat -o -nap TCP | findstr 0.0:80 –  > Por denyoha.
EndUzr

Așa cum am menționat în altă parte: folosiți netstat, cu comutatoarele corespunzătoare, și apoi filtrați rezultatele cu find[str]

Cel mai simplu:

netstat -an | find ":N"

sau

netstat -a -n | find ":N"

Pentru a găsi un port străin ați putea folosi:

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

Pentru a găsi un port local pe care l-ați putea folosi:

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

Unde N este numărul portului care vă interesează.

-n se asigură că toate porturile vor fi numerice, adică nu vor fi returnate ca fiind traduse în nume de servicii.

-a va asigura căutarea tuturor conexiunilor (TCP, UDP, ascultare…).

În fereastra find șirul trebuie să includeți două puncte, ca și calificativ al portului, altfel numărul poate să corespundă atât adreselor locale, cât și celor străine.

Puteți restrânge și mai mult căutarea folosind alte comutatoare netstat, după cum este necesar…

Lecturi suplimentare (^0^)

netstat /?

find /?

findstr /?

Uday Singh
netstat -a -n | find /c "10.240.199.9:8080"

vă va oferi numărul de socket-uri active pe un anumit IP și port (numărul portului serverului)

Comentarii

  • Acest lucru nu funcționează pentru windows power shell pe windows 2012 R2 și a primit rezultatul ca FIND: Parameter format not correct –  > Por Chaminda Bandara.
Pratik Roy

Pentru utilizatorii Windows 8 : Deschideți Promptul de comandă, tastați netstat -an | găsiți „numărul portului dvs.” , introduceți .

Dacă răspunsul vine ca LISTENING atunci portul este în uz, altfel este liber.

shawn

Pentru a îmbunătăți răspunsul lui @EndUzr:

Pentru a găsi un port străin (IPv4 sau IPv6) puteți utiliza:

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

Pentru a găsi un port local (IPv4 sau IPv6) puteți utiliza: Pentru a găsi un port local (IPv4 sau IPv6) puteți utiliza::

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

Unde N este numărul portului care vă interesează. Comutatorul „/r” îi spune să îl proceseze ca regexp. Comutatorul „/c” îi permite lui findstr să includă spații în cadrul șirurilor de căutare în loc să trateze un spațiu ca delimitator al șirului de căutare. Acest spațiu adăugat previne ca porturile mai lungi să fie tratate greșit – de exemplu, „:80” vs „:8080” și alte probleme legate de utilizarea porturilor.

Pentru a lista conexiunile la distanță la serverul RDP local, de exemplu:

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

Sau pentru a vedea cine se atinge de DNS-ul dumneavoastră:

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

Dacă doriți să excludeți porturile numai locale, puteți utiliza o serie de excepții cu „/v” și caractere de scăpare cu o backslash:

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

Jobin James

Acest lucru vă va ajuta

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

subodhkarwa

Pentru portul 80, comanda ar fi : netstat -an | find „80” Pentru portul n, comanda ar fi : netstat -an | find „n”

Aici, netstat este instrucțiunea pentru mașina dvs.

-a : Afișează toate conexiunile și porturile de ascultare-n : Afișează toate adresele și instrucțiunile în format numeric (acest lucru este necesar deoarece ieșirea din -a poate conține nume de mașini)

Apoi, o comandă find pentru a „potrivi modelul” ieșirii din comanda anterioară.

Rahid Zeynalov

Vă va oferi toate socket-urile active pe un anumit IP:

netstat -an | find "172.20.1.166"

Hernaldo Gonzalez

În RHEL 7, folosesc această comandă pentru a filtra mai multe porturi în starea LISTEN:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'

Dharmajulian

Această comandă va afișa toate porturile și adresa de destinație a acestora:

netstat -f 

Comentarii

  • Solicitarea a fost de a afla dacă un anumit port este utilizat. –  > Por Ro Yo Mi.
stones333

Utilizați comanda lsof „lsof -i tcp:port #”, iată un exemplu.

$ 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)

Comentarii

  • Punct minus pentru că aceasta nu este o comandă windows. Dacă este disponibilă pe windows nu există nicio discuție despre cum să o dobândești. –  > Por Ro Yo Mi.
  • Nu răspunde la întrebarea lui OP. -1. –  > Por FractalSpace.