如何查看Mac OS X中哪些进程具有打开的TCP / IP端口?


Answers:


22

一种替代方法是使用该lsof实用程序。具体来说,lsof -i 4tcp将列出所有打开了某种TCP IPv4网络套接字的进程。的手册页lsof将为您提供有关如何使用该实用程序以及如何解释输出的详细信息。


9

如果您对特定端口感兴趣,可以使用以下示例:

lsof -i 4tcp:8080 -sTCP:LISTEN

如果只想获取进程ID,则可以运行以下命令:

lsof -i 4tcp:8080 -sTCP:LISTEN -Fp

1

当我想查看TCP或UDP特定端口上的所有内容时,请使用以下命令。该-n选项禁止尝试将IP地址解析为域名,并且-P禁止尝试找出特定端口的名称。另外,以as身份运行root将比以普通用户身份运行向您显示更多的进程。

sudo lsof -iTCP:53 -iUDP:53 -n -P


0

以下代码示例列出了本地OSX计算机上所有正在运行的TCP服务器:

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仅显示监听连接的套接字。即服务器。

第一行显示一个服务器绑定到localhost,又名127.0.0.1,端口2022。它将回答本地请求,而不是基于Internet的请求。

第二行是绑定到所有地址(即*port )的服务器3141。它回答上网查询。

要列出客户端服务器使用的端口,请使用以下命令:

netstat -an -Ptcp | grep tcp4

3
但是netstat在基于BSD的主机上没有列出任何进程信息...这就是问题所在。
Tonin

-1

使用Netstat命令在终端窗口中应该可以做到这一点。

如果您更喜欢GUI方式:

在Mac OS X 10.5中,/ Applications / Utilities文件夹包含一个名为:Network Utility的网络实用程序,有关gui应用程序中显示的这些统计信息,请参见Netstat选项卡,以及Ping,Lookup,Traceroute,Whois,Finger和Port Scan。


2
OS X上的netstat无法选择列出套接字所连接的进程。
史蒂夫·弗利
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.