netstat -anp | grep :端口号可快速定位端口监听状态,关键看含该端口且第6列为listen的行,如tcp6 0 0 :80 :* listen 1234/nginx表示nginx正监听80端口;无listen行则说明未作为服务端启动;需加sudo获取进程信息,推荐用ss -tlnp替代以提升效率。

直接用 netstat -anp | grep :端口号 就能快速定位服务端口的连接状态,关键是看有没有 LISTEN 行,以及进程名是否符合预期。
确认端口监听状态
服务正常运行时,端口通常处于 LISTEN 状态。执行命令后,重点识别含 :端口号 且第6列是 LISTEN 的行:
-
netstat -anp | grep :80—— 查看80端口是否被监听 - 输出中若出现类似
tcp6 0 0 *:80 *:* LISTEN 1234/nginx,说明 nginx 正在监听80端口 - 若无 LISTEN 行,只看到 ESTABLISHED 或 TIME_WAIT,说明该端口当前未作为服务端启动,只是临时连接使用
区分 TCP/UDP 和协议类型
避免误判 UDP 端口或无关连接,可限定协议:
-
netstat -tlnp | grep :3306—— 只查 TCP + LISTEN + 进程信息(适合 MySQL) -
netstat -ulnp | grep :53—— 只查 UDP + LISTEN(适合 DNS 服务) -
-t(TCP)、-u(UDP)、-l(仅监听)、-n(数字地址)、-p(需 root 权限显示进程)组合更精准
处理权限与过滤干扰
普通用户运行 -p 会缺失进程信息,也可能因权限不足漏掉关键行:
- 加
sudo再执行:sudo netstat -tlnp | grep :80 - grep 时注意冒号要写全:
grep :80比grep 80更安全,避免匹配到 PID 或 IP 中的 80 - 若结果过多,可用
grep -v "127.0.0.1"排除本地回环监听(视场景需要)
对比验证与替代方案
netstat 已逐步被 ss 替代,但逻辑一致;遇到 netstat 不可用时可切换:
-
ss -tlnp | grep :80—— 功能等效,速度更快,推荐新环境优先使用 - 配合
lsof -i :80(macOS/Linux 均支持)可交叉验证,尤其当 netstat 输出不完整时 - 如需查某 IP 的连接,把
grep :80换成grep 192.168.1.100即可定位特定地址通信











