Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How do I see which processes have open TCP/IP ports in Mac OS X?

share|improve this question

5 Answers 5

up vote 7 down vote accepted

One alternative is the use of the lsof utility; specifically, lsof -i 4tcp will list all processes with some sort of TCP IPv4 network sockets open. The manpage of lsof will provide you with detailed information on how to use the utility and how to interpret the output.

share|improve this answer
    
Thanks, definitely the easiest to use –  Zubair Feb 18 '10 at 11:12

does wireshark work on os x?

share|improve this answer
1  
Yes it does work on OS X. –  ayaz Feb 18 '10 at 11:02
2  
+1 for not making a separate question out of this :-) –  Cairo Feb 18 '10 at 15:12

This should be possible in a terminal window using the Netstat command.

And if you like the GUI way more:

With Mac OS X 10.5, the /Applications/Utilities folder contains a network utility called: Network Utility, see tab Netstat for these stats presented in a gui application, along with Ping, Lookup, Traceroute, Whois, Finger and Port Scan.

share|improve this answer
    
netstat on OS X has no options to list the processes sockets are attached to. –  Steve Folly Feb 18 '10 at 23:35

The following code example lists all running TCP servers on your local OSX machine:

netstat -a -Ptcp | egrep 'tcp4.*LISTEN'

tcp4       0      0  127.0.0.1.2022         *.*                    LISTEN               0          0
tcp4       0      0  *.3141                 *.*                    LISTEN               0          0

LISTEN shows only sockets listening for connections. That is, servers.

The first line shows a server bound to localhost, aka 127.0.0.1, port 2022. It will answer to local requests, but not Internet-based requests.

The second line is a server bound to all addresses, ie *, port 3141. It will answer Internet queries.

To list ports used by clients and servers, use the following:

netstat -an -Ptcp | grep tcp4
share|improve this answer

If you are interested in a specific port, you can use this example:

lsof -i 4tcp:8080 -sTCP:LISTEN

If you would only like to get the process id, you can run this:

lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.