user1580018
user1580018

Reputation: 3749

Command line for looking at specific port

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.

Upvotes: 374

Views: 1759580

Answers (18)

Himadri Pant
Himadri Pant

Reputation: 2291

I use:

netstat –aon | find "<port number>"

Here the -o option is used for showing a process identifier (PID).

Now you can do whatever you need with this process ID. To terminate the process, for example, use:

taskkill /F /pid <process ID>

Upvotes: 93

Rohit Gaidhane
Rohit Gaidhane

Reputation: 351

For me below commands working to check specific port status

netstat -an | find ":8000"

netstat -aon | findstr ":8000"

Upvotes: 2

Proxyma
Proxyma

Reputation: 35

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"

Upvotes: 2

bhushan217
bhushan217

Reputation: 16

For exact match [windows command prompt]

netstat -aon | findstr "\<5000\>"

Upvotes: 0

shengbin_xu
shengbin_xu

Reputation: 168

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

Upvotes: 0

Rahid Zeynalov
Rahid Zeynalov

Reputation: 187

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

netstat -an | find "172.20.1.166"

Upvotes: 8

Hernaldo Gonzalez
Hernaldo Gonzalez

Reputation: 2047

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

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

Upvotes: 2

Jobin James
Jobin James

Reputation: 1030

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

Upvotes: 7

Md. Naushad Alam
Md. Naushad Alam

Reputation: 8461

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"

Upvotes: 465

Uday Singh
Uday Singh

Reputation: 175

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)

Upvotes: 12

Subodh Karwa
Subodh Karwa

Reputation: 2725

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.

Upvotes: 3

shawn
shawn

Reputation: 413

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 *[^ ]*:[^ ]*"

Upvotes: 7

stones333
stones333

Reputation: 8958

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)

Upvotes: -2

Pratik Roy
Pratik Roy

Reputation: 117

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 .

Upvotes: 6

EndUzr
EndUzr

Reputation: 383

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 /?

Upvotes: 24

Dharmajulian
Dharmajulian

Reputation: 17

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

netstat -f 

Upvotes: -3

Mohsen Safari
Mohsen Safari

Reputation: 6795

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.

Upvotes: 76

Rivasa
Rivasa

Reputation: 6740

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.

Upvotes: 119

Related Questions