350

Is there a way to examine the status of a specific port from the Windows command line? I know I can use netstat to examine all ports but netstat is slow and looking at a specific port probably isn't.

Harry Johnston
  • 35,639
  • 6
  • 68
  • 158
user1580018
  • 3,509
  • 3
  • 14
  • 3

18 Answers18

434

Here is the easy solution of port finding...

In cmd:

netstat -na | find "8080"

In bash:

netstat -na | grep "8080"

In PowerShell:

netstat -na | Select-String "8080"
CodeZombie
  • 5,367
  • 3
  • 30
  • 37
Md. Naushad Alam
  • 8,011
  • 6
  • 25
  • 23
  • 3
    How to use this command? I want to know this port number is working or not link:- [link]( https://.localhost:9043/ibm/console/login.do) – Mayur Ingle May 26 '17 at 12:09
  • 21
    Also worth mentioning the `-o` flag (i.e. `-nao` here) to include the PID of the process using the port. – Steve Chambers Nov 28 '17 at 10:29
  • if you have any other used port which has "8080" then it will also be grabbed. For example 98080 or 78080 and so on – Shtefan Feb 08 '22 at 22:32
  • @Shtefan As other answers have pointed out, prefixing the port number you are a concerned about with a colon reduces (but does not necessarily eliminate) the possibility of getting false positives. So searching for ":8080" is better than searching for "8080". – skomisa Mar 13 '23 at 20:20
114

You can use the netstat combined with the -np flags and a pipe to the find or findstr commands.

Basic Usage is as such:

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

So for example to check port 80 on TCP, you can do this: netstat -np TCP | find "80" Which ends up giving the following kind of output:

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

As you can see, this only shows the connections on port 80 for the TCP protocol.

Rivasa
  • 6,510
  • 3
  • 35
  • 64
87

I use:

netstat –aon | find "<port number>"

here o represents process ID. now you can do whatever with the process ID. To terminate the process, for e.g., use:

taskkill /F /pid <process ID>
Himadri Pant
  • 2,171
  • 21
  • 22
76

when I have problem with WAMP apache , I use this code for find which program is using port 80.

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

enter image description here

3068 is PID, so I can find it from task manager and stop that process.

Community
  • 1
  • 1
Mohsen Safari
  • 6,669
  • 5
  • 42
  • 58
  • Very nice, thanks a lot! Specially for TCP I use following: netstat -o -nap TCP | findstr 0.0:80 – denyoha Feb 27 '20 at 13:33
22

As noted elsewhere: use netstat, with appropriate switches, and then filter the results with find[str]

Most basic:

netstat -an | find ":N"

or

netstat -a -n | find ":N"

To find a foreign port you could use:

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

To find a local port you might use:

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

Where N is the port number you are interested in.

-n ensures all ports will be numerical, i.e. not returned as translated to service names.

-a will ensure you search all connections (TCP, UDP, listening...)

In the find string you must include the colon, as the port qualifier, otherwise the number may match either local or foreign addresses.

You can further narrow narrow the search using other netstat switches as necessary...

Further reading (^0^)

netstat /?

find /?

findstr /?
Dennis Williamson
  • 346,391
  • 90
  • 374
  • 439
EndUzr
  • 363
  • 3
  • 8
12
netstat -a -n | find /c "10.240.199.9:8080"

it will give you number of sockets active on a specific IP and port(Server port number)

TamusJRoyce
  • 817
  • 1
  • 12
  • 25
Uday Singh
  • 155
  • 1
  • 8
8

It will give you all active sockets on a specific IP:

netstat -an | find "172.20.1.166"
Rahid Zeynalov
  • 172
  • 1
  • 10
7

To improve upon @EndUzr's response:

To find a foreign port (IPv4 or IPv6) you can use:

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

To find a local port (IPv4 or IPv6) you can use:

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

Where N is the port number you are interested in. The "/r" switch tells it to process it as regexp. The "/c" switch allows findstr to include spaces within search strings instead of treating a space as a search string delimiter. This added space prevents longer ports being mistreated - for example, ":80" vs ":8080" and other port munging issues.

To list remote connections to the local RDP server, for example:

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

Or to see who is touching your DNS:

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

If you want to exclude local-only ports you can use a series of exceptions with "/v" and escape characters with a backslash:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
shawn
  • 383
  • 2
  • 8
6

For Windows 8 User : Open Command Prompt, type netstat -an | find "your port number" , enter .

If reply comes like LISTENING then the port is in use, else it is free .

Pratik Roy
  • 117
  • 1
  • 3
5

This will help you

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
Jobin James
  • 916
  • 10
  • 13
3

For port 80, the command would be : netstat -an | find "80" For port n, the command would be : netstat -an | find "n"

Here, netstat is the instruction to your machine

-a : Displays all connections and listening ports -n : Displays all address and instructions in numerical format (This is required because output from -a can contain machine names)

Then, a find command to "Pattern Match" the output of previous command.

Subodh Karwa
  • 2,495
  • 1
  • 15
  • 13
2

In RHEL 7, I use this command to filter several ports in LISTEN State:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo Gonzalez
  • 1,977
  • 1
  • 21
  • 32
0

in linux: To find a foreign port you could use:

netstat -anp |grep port|awk '{ print $5 }' |grep port

To find a local port you might use:

netstat -anp |grep port|awk '{ print $4 }' |grep port

shengbin_xu
  • 128
  • 3
  • 14
0

For exact match [windows command prompt]

netstat -aon | findstr "\<5000\>"
bhushan217
  • 16
  • 2
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Dec 26 '22 at 00:10
0

If you need to check several ports - the simplest way to do it use findstr with several strings for search:

findstr /C:":80 " /C:":443 " /C:":8080"

Spaces after the port numbers are important, without the space findstr will select everything which starts e.g. from ":80". In my case complete command looks like this:

netstat -an | findstr /C:":80 " /C:":443 " /C:":8080"
Proxyma
  • 15
  • 6
0

For me below commands working to check specific port status

netstat -an | find ":8000"

netstat -aon | findstr ":8000"

Rohit Gaidhane
  • 321
  • 2
  • 12
-2

Use the lsof command "lsof -i tcp:port #", here is an example.

$ 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)
stones333
  • 8,588
  • 1
  • 25
  • 27
-3

This command will show all the ports and their destination address:

netstat -f 
brasofilo
  • 25,496
  • 15
  • 91
  • 179