netstat核心参数组合为-tuln:-t查TCP、-u查UDP、-l仅监听、-n数字显示;加-p可显示进程名和PID(需root),配合grep可精准定位端口占用,如sudo netstat -tulnp | grep ':80'。

Linux 中用 netstat 查端口监听状态,核心是组合几个关键参数,快速定位“谁在监听、监听哪个端口、用什么协议”。它虽在新系统中逐渐被 ss 替代,但语法直观、逻辑清晰,仍是排查服务启动失败或端口冲突的首选工具之一。
常用命令组合:-tuln 是基础四件套
检查监听端口最常用的命令是:
-
sudo netstat -tuln—— 显示所有正在监听的 TCP 和 UDP 端口,以数字形式(不解析域名/IP),适合快速扫一眼 -
sudo netstat -tulnp—— 在上一条基础上加-p,显示占用端口的进程名和 PID,需 root 权限才能看到进程信息 -
netstat -ltn—— 只看 TCP 监听端口(如 SSH、Nginx、MySQL),排除 UDP 干扰 -
netstat -lun—— 只看 UDP 监听端口(如 DNS、NTP)
精准查找某个端口是否被监听
比如检查 80 或 3306 端口是否就绪,直接过滤即可:
-
sudo netstat -tuln | grep ':80'—— 注意冒号:是关键分隔符,匹配本地地址后的端口号 -
sudo netstat -tulnp | grep ':3306'—— 同时确认是哪个进程(如 mysqld)占用了该端口 - 若输出为空,说明该端口当前未被任何进程监听
理解输出中的关键字段
执行 sudo netstat -tulnp 后典型行如:
-
0.0.0.0:22 表示监听本机所有 IPv4 地址的 22 号端口;
[::]:22则代表 IPv6 - LISTEN 是关键状态,表示端口已打开并等待连接;其他常见状态还有 ESTABLISHED(已连通)、TIME_WAIT(连接刚关闭)
- 1119/sshd 中 1119 是进程 PID,sshd 是进程名,可据此 kill 或查日志
注意事项与替代提醒
- 最小化安装的系统可能默认没装
netstat,需手动安装:yum install net-tools(CentOS/RHEL)或apt install net-tools(Debian/Ubuntu) - 生产环境高并发场景下,
netstat解析 /proc/net/* 文件较慢,推荐改用ss -tulnp,速度更快且输出更紧凑 - 若只需查进程不关心协议细节,
lsof -i :80更直接,但需额外安装 lsof


















