在macOS中端口无法绑定时,可用sudo lsof -i :端口号查占用进程;sudo netstat -vanp tcp | grep LISTEN辅助验证监听状态;或用brew install iproute2mac后执行sudo ss -tuln | grep ':端口号'快速定位。

如果您在 macOS 系统中发现某个端口无法绑定或连接失败,很可能是该端口已被其他进程占用。以下是通过终端命令定位占用指定端口的程序的具体步骤:
一、使用 lsof 命令查询端口占用
lsof(list open files)是 macOS 自带的系统工具,可列出所有打开的文件及网络连接,包括监听端口的进程。该命令需配合 sudo 权限以查看其他用户启动的进程。
1、打开“终端”应用程序(可在“应用程序 → 实用工具”中找到)。
2、输入以下命令并回车,将 8080 替换为您要查询的实际端口号:
sudo lsof -i :8080
3、若端口被占用,输出中将显示 COMMAND(进程名)、PID(进程ID)、USER(所属用户)及 TYPE 等信息。
4、如需仅获取 PID,可追加管道过滤: sudo lsof -ti :8080。
二、使用 netstat 命令辅助验证
netstat 可显示网络连接与监听状态,虽在新版 macOS 中功能受限,但仍可配合 -vanp 参数获取部分端口监听信息。需注意其输出格式与 lsof 不同,适合交叉验证。
1、在终端中执行以下命令:
sudo netstat -vanp tcp | grep LISTEN
2、在输出结果中查找目标端口号所在行,确认其本地地址列(Local Address)是否包含该端口。
3、若显示类似 *.8080 或 127.0.0.1.8080,说明该端口处于监听状态。
三、使用 ss 命令(需 Homebrew 安装)
ss(socket statistics)是更现代的网络工具,性能优于 netstat,但 macOS 默认未预装。安装后可提供更简洁的端口占用视图,尤其适合快速筛选。
1、若尚未安装 Homebrew,先运行 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装。
2、执行 brew install iproute2mac 安装兼容版 ss 命令。
3、查询端口时输入:sudo ss -tuln | grep ':8080'。
4、输出中的 PID/Program name 列将直接显示占用程序名称及进程 ID。










