如何在Mac上的TCP端口上查找谁/什么在侦听

如何在Mac上的TCP端口上查找谁/什么在侦听

有时,您可能会发现自己处于寻求在Mac上查找处于侦听状态的打开TCP连接的情况。无论您是要对特定网络问题进行故障诊断,还是只是想确定哪些进程正在侦听 Mac 上的特定端口,这都很有用。

我们将使用命令行 lsof 工具来找出在 Mac 上侦听打开的 TCP 连接的内容/人员,使其最适合熟悉终端和 sudo 的高级 Mac 用户。

如何在 MacOS 上查找侦听 TCP 端口的内容

我们在这里使用的命令针对的是MacOS Ventura和MacOS Monterey,但也应该适用于较旧的MacOS版本:

    1. 从/应用程序/实用程序/或通过Spotlight使用命令+空格键打开“终端”应用程序
    2. 键入以下命令:

sudo lsof -iTCP -sTCP:LISTEN -P -n

  1. 按回车键并在请求执行命令时使用管理员密码,并查看正在 Mac 上主动侦听哪些 TCP 端口的列表

您将看到命令/进程列表、进程 ID (PID)、类型(IPv6 与 IPv4)、设备、节点(在本例中为 TCP)和端口。

如何在Mac上的TCP端口上查找谁/什么在侦听

有了这些信息,您就可以根据目标确定后续步骤。

对于那些好奇的人,让我们分解一下这里使用的命令和各种标志:

  • sudo:以超级用户权限运行命令,允许它显示所有用户(包括 root)打开的网络连接。
  • lsof:列出系统上所有打开的文件,包括打开的网络连接。
  • -iTCP:过滤结果以仅显示 TCP 连接。
  • -sTCP:LISTEN:过滤结果以仅显示侦听的 TCP 连接。
  • -P:禁用端口名称解析,仅显示端口号。
  • -n:禁用主机名解析,仅显示 IP 地址。

lsof 命令非常强大,我们之前已经介绍了它的用法,包括确定哪些应用程序或进程正在与特定文件交互、查找哪些进程正在使用互联网连接、显示开放的网络连接、侦听所有打开的互联网连接等等。

顺便说一句,如果您更喜欢GUI,则可以尝试Sloth应用程序,该应用程序基本上是lsof的GUI前端,可免费下载,并且Activity Monitor对类似功能的支持也有限。

正文完