用netstat -tuln可快速查看所有tcp监听端口,加sudo显示进程名和pid;netstat -an | grep listen查看全部监听套接字;grep :端口号精准定位指定端口是否被监听。

Mac终端里想快速知道哪些端口正开着等连接,比如本地开发服务器、数据库或后台服务是否已启动,直接用netstat就能看到所有监听中的TCP和UDP端口,不用装额外工具,但默认输出太杂,必须加参数过滤才实用。
用netstat查看全部监听端口(含IPv4/IPv6)
执行命令:netstat -an | grep LISTEN。这会列出所有处于LISTEN状态的套接字,包括TCP和UDP,覆盖IPv4和IPv6地址。
注意:不加sudo时,系统级守护进程(如launchd管理的服务)的PID和程序名可能显示为空或“-”,无法确认是谁在监听。
若结果中Local Address列出现*:3000,表示该端口监听所有网卡,对外暴露风险更高;若为127.0.0.1:8080,则仅本机可访问,相对安全。
精准筛选TCP监听端口(推荐日常使用)
第一步:打开终端(Command + 空格 → 输入“终端” → 回车)。
第二步:执行命令:netstat -tuln。
第三步:观察输出——-t只查TCP,-u查UDP,-l限定监听态,-n禁用域名和服务名解析,确保地址和端口号以数字形式直出,避免卡顿或误读。
第四步:如需看到进程名和PID,必须加sudo提权:sudo netstat -tuln,输入密码后Program Name列才会显示“node”“nginx”等真实进程名。
定位指定端口是否被监听
方法一:全局过滤法
执行:netstat -an | grep LISTEN | grep :3000。适用于你已经知道目标端口号,想快速确认它是否出现在监听列表中。
方法二:TCP专属过滤法
执行:netstat -tuln | grep :5000。比方法一更干净,自动排除UDP干扰项(如DNS 53端口、NTP 123端口),结果更聚焦。
【必须加 -n 参数】否则3000端口可能被反向解析成“http-alt”,干扰识别,且DNS查询会导致命令卡顿数秒。











