用 lsof 列出 Mac 上所有网络连接

一条容易遗忘的命令,能显示所有网络套接字及其所属进程,比 netstat 的裸连接表更实用。

macOS套接字lsof 文件占用审计低风险
运行 `lsof -i -P -n`,即可列出所有 TCP/UDP 套接字以及每个套接字所属的进程。

01命令

命令
$ lsof -i -P -n

02作用说明

-i 让 lsof 只匹配网络套接字;-P 保留端口号为数字而不是服务名,-n 跳过反向 DNS 解析,因此输出立即返回。结果包含 PID、进程名、用户以及本地/远程地址,非常适合审计哪些程序在悄悄联网。可以配合 grep ESTABLISHED 查看活动连接,或 grep LISTEN 查看本机监听的服务。

03风险

风险低风险
使用条件Built-in on macOS; full output for all users' processes requires sudo.
!注意: 不加 sudo 时 lsof 只显示当前用户拥有的套接字,看起来可能像不完整的列表。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • lsof — list open files (macOS)
    SS64 · technical · 2026-09-17
    依据: Documents -i to select Internet addresses, -P to avoid port-name conversion, and -n to skip hostname lookups.

最后验证: 2026-09-17 · 分类: 网络

06相关方案