How to use netstat to show what process is listening on a port
Solution 1
Unfortunately on OSX you're stuck with the BSD netstat
which will not show you the process ID that is attached to a given port. What you have to do instead is use lsof
. The syntax you'll need to use is:
lsof -i :8080
This will print out gobs of information, most of which you don't care about, but the fields are well labeled. For example, check out this example output.
lsof -i :53237
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest 29u IPv4 0x2c3f7f95244855c3 0t0 TCP localhost:53237 (LISTEN)
This tells me that port 53237 is in use by process ID 927. When reading the COMMAND field keep in mind that this output is truncated, in reality the full name of the binary is GoogleTalkPlugin.
Solution 2
This is what I like to use when looking for a listening port's PID.
For Linux use: netstat -tunlp
- n network
- l listening ports
- p process
- t tcp
- u udp
Additional information can be found in the man pages.
Solution 3
I was in the process of modifying netstat
on OS X to provide this feature and stumbled upon the fact that -v
will give you the pid associated with a socket.
Solution 4
For me, the following two lines work best to show which apps have listening ports open, and tunnel, lsof is fully cross-platform:
netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN
Solution 5
From man netstat
-p, --program Show the PID and name of the program to which each socket belongs.
I usually just do this: netstat -antup | grep 8080
Related videos on Youtube
timpone
Updated on September 18, 2022Comments
-
timpone almost 2 years
I'm on an OS X Mountain Lion laptop and have a couple of Vagrant boxes on it. I'm trying to figure out which process is listening on port 8080. My variations produce like a hundred lines but none with specific port number. I'm assuming something like:
netstat -XXX | grep 8080
-
Robin Alvarenga almost 11 yearsIs this in a home setting or professional environment?
-
timpone almost 11 yearswell, recreating an server enviro locally. if you want to move to different site, that's fine. Different versions of netstat support different arguments.
-
Robin Alvarenga almost 11 yearsOkay then sir, everything seems in order here, please carry on and have a nice day.
-
-
timpone almost 11 yearshmm... this sounds like what I'd like but this is giving me different options on OS X for -p
-p protocol Show statistics about protocol, which is either a well-known name
-
timpone almost 11 yearsthx, this gets me a lot closer, it's going to a fairly generic
VBoxHeadl
- is there any way to see which VirtualBox instance (have two right now) or am I asking way too much (propably the latter). thx -
Brandon almost 11 years@timpone: The
-p
to display the PID is a GNU netstat command whereas OSX uses BSD netstat. -
Brandon almost 11 years@timpone: I don't know enough about VirtualBox to help you down that path. You can check the process command line to see if it's listed there, or use
lsof -p PID
and browse the list of open files until you find it. -
timpone almost 11 yearscool, thx for help
-
jameshfisher over 8 years
-p
does not list the arguments to the program. How do I see this? -
jameshfisher over 8 years
-p
does not list the arguments to the program. How do I see this? -
Leathe over 8 yearsThe
-v
increases the verbosity level and it is documented. developer.apple.com/library/mac/documentation/Darwin/Reference/… -
Sean Hamilton over 8 yearssorry, I meant the fact that it prints the PID is not documented, not that the option exist.
-
Ted Bigham over 8 yearsOP asked about OSX. -p is not an option on OSX version of netstat.
-
Ted Bigham over 8 yearsOP asked about OSX. -p is not an option on OSX version of netstat.
-
Ted Bigham over 8 yearsOP asked about getting the process. This does not show the process id.
-
Daniel W. over 5 years
-p
on OSX isport
. I hate the developers decisions to make different arguments for OSX and Linux... -
Daniel W. over 5 years
-p
on OSX isport
. I hate the developers decisions to make different arguments for OSX and Linux...