netstat 是 linux 下排查网络连接和端口状态最常用的命令,常用组合包括 -tuln 查监听端口、-tulnp 显示进程信息、-an 配合 grep 筛选特定端口或状态,结合监听地址含义可快速定位服务是否启动、端口占用及访问范围问题。

netstat 是 Linux 下排查网络连接和端口状态最常用的命令之一,掌握几个关键参数组合,就能快速定位服务是否启动、端口是否被占用、连接是否异常等问题。
常用参数组合及用途
单独使用某个参数作用有限,组合使用才真正高效:
- netstat -tuln:查看所有正在监听的 TCP/UDP 端口(-t TCP,-u UDP,-l 仅监听,-n 不解析域名和服务名);这是检查服务端口最常用的命令。
- netstat -tulnp:在上一条基础上加 -p,显示占用端口的进程名和 PID(需 root 或 sudo 权限,否则可能显示“-”或报 permission denied)。
- netstat -an | grep :80:快速筛选特定端口(如 80)的所有连接状态(监听、已建立、关闭中等),-a 包含全部连接,-n 避免 DNS 查询延迟。
- netstat -tnp | grep ESTABLISHED:只看当前活跃的 TCP 连接,适合排查异常外连或高并发连接数。
识别监听地址含义
执行 netstat -tuln 后,Local Address 列显示类似 *:22、0.0.0.0:3306、127.0.0.1:6379 的格式,含义如下:
基于Intranet/Internet 的Web下的办公自动化系统,采用了当今最先进的PHP技术,是综合大量用户的需求,经过充分的用户论证的基础上开发出来的,独特的即时信息、短信、电子邮件系统、完善的工作流、数据库安全备份等功能使得信息在企业内部传递效率极大提高,信息传递过程中耗费降到最低。办公人员得以从繁杂的日常办公事务处理中解放出来,参与更多的富于思考性和创造性的工作。系统力求突出体系结构简明
-
*:22或0.0.0.0:22表示该服务监听本机所有 IPv4 地址,外部可访问(如 SSH 默认行为)。 -
[::]:22表示监听所有 IPv6 地址。 -
127.0.0.1:6379表示仅本地回环访问,外部无法连接(常见于 Redis、数据库等安全配置)。
快速定位端口冲突或服务异常
当新服务启动失败,常因端口已被占用。可按以下顺序排查:
- 先运行 sudo netstat -tulnp | grep :端口号(例如
:8080),确认是否有进程在用; - 若输出为空,再检查是否是 systemd 服务未启用(如
systemctl is-active nginx); - 若看到进程但服务不可达,注意看 Local Address 是否为 127.0.0.1 —— 可能只是本地绑定,不响应外部请求;
- 配合 ss -tuln 对比验证(现代系统推荐用 ss 替代 netstat,更快更轻量)。
实用小技巧
提升效率的几个细节:
- 加 -c 参数可连续刷新(如
netstat -tulnc 2每 2 秒刷新一次),适合观察连接数动态变化; - 用 -s 查看协议级统计(
netstat -s或netstat -st查 TCP 统计),有助于发现丢包、重传等底层问题; - 搭配 grep 和 awk 提取关键字段,例如:
netstat -tulnp | awk '$1 ~ /tcp/ {print $4,$7}' | column -t —— 整洁列出 TCP 监听地址与对应进程; - 非 root 用户运行
netstat -tuln仍可查端口,但加 -p 就必须提权,这点要提前预料。









