如何在 Mac 上查找谁/什么正在监听 TCP 端口

什么在 Mac 上侦听 TCP 端口

有时,您可能会发现自己处于这样一种情况,即您正在寻找 Mac 上哪些打开的 TCP 连接处于侦听状态。无论您是要解决特定的网络问题,还是只是想确定哪些进程正在侦听 Mac 上的特定端口,这都非常有用。

我们将使用命令行 lsof 工具找出什么/谁在 Mac 上打开 TCP 连接,使其最适合熟悉终端和 sudo 的高级 Mac 用户。

如何在 MacOS 上找到监听 TCP 端口的内容

我们将在此处使用的命令针对 MacOS Ventura 和 MacOS Monterey,但也适用于较旧的 MacOS 版本:

  1. 从 /Applications/Utilities/ 或使用 Command+空格键通过 Spotlight 打开“终端”应用程序
  2. 键入以下命令:
  3. sudo lsof -iTCP -sTCP:LISTEN -P -n

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

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

在 Mac 上查找在 TCP 端口上侦听的内容

根据这些信息,您可以根据自己的目标确定后续步骤。

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

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

lsof 命令 非常强大,我们之前在 确定哪些应用程序或进程正在与特定文件交互, < a href="https://ipressx.com/show-what-apps-processes-are-use-internet-connection-command-line/">查找哪些进程正在使用互联网连接, 显示打开的网络连接监听所有打开的互联网连接,等等。

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

您是否有任何类似的技巧、命令或工具可用于查找什么或谁正在侦听 Mac 上的任何给定 TCP 端口?请在下面的评论中告诉我们。