首页 > 甄选问答 >

问 netstat 命令的功能 网络连接查看工具深度讲解

2026-11-09 20:44:15
最佳答案

答

结论先行,netstat 是 Windows Linux 系统自带的网络诊断命令,核心功能是查看本机所有网络连接、监听端口、路由表、网卡统计信息,常用来排查端口占用、查看对外连接、确认服务是否正常监听,属于运维、网络排错最基础的命令,它可以展示 TCP、UDP 连接状态,本地 IP 端口、远程 IP 端口、连接状态,还能关联对应的进程 PID,很多新手只知道查端口占用,不清楚它还可以查看路由表和网卡收发统计,掌握常用参数之后,排错效率会明显提升。

基础核心功能

1 查看活动 TCP/UDP 网络连接,也就是本机和外部主机已经建立的连接

2 查看本机正在监听的端口,判断服务有没有正常启动监听

3 查看系统路由表,确认默认网关、静态路由条目

4 查看网卡接口统计数据,包含收发数据包、丢包、错误包计数

5 显示连接对应的进程 PID,定位是哪个程序占用端口

常用参数说明

参数作用
-a显示所有连接和监听端口,包含 TCP UDP
-n以数字形式显示 IP 和端口,不做域名反向解析,查询速度更快
-o显示关联进程 PID,定位占用端口程序,排错最常用
-p tcp只筛选 TCP 协议连接,也可以写 udp
-r打印路由表,等同于查看路由信息
-e显示网卡接口统计信息
-s按协议分类统计,TCP UDP ICMP IP 的数据包统计

经典组合命令:netstat -ano,运维最常用,显示全部连接、数字 IP、进程 PID

连接状态说明

LISTENING 监听状态,端口等待外部连接

ESTABLISHED 已经成功建立连接

TIME_WAIT 连接主动关闭之后等待状态,短时间保留

CLOSE_WAIT 对端已经关闭,本机还没有关闭连接

典型使用场景

1 排查端口被占用,比如 80 3306 端口启动失败,用 netstat -ano 查找占用 PID

2 检查服务是否监听,确认 Web 服务、数据库是否正常开启端口

3 排查异常外联,查看电脑是否有未知对外网络连接

4 检查路由表是否正确,排查跨网段不通问题

5 查看网卡数据包错误,判断网络丢包情况

使用步骤

第一步 打开命令提示符 CMD,或者 PowerShell,建议管理员权限运行

第二步 输入 netstat 加上需要的参数,回车执行

第三步 读取输出表格,本地地址、外部地址、状态、PID

第四步 如果需要定位程序,复制 PID,在任务管理器详细信息里面找到对应进程

第五步 如果只查指定端口,可以配合 findstr 筛选,例如 netstat -ano | findstr ":80"

补充说明

Windows 新版系统微软推荐替代工具是 Get-NetTCPConnection PowerShell 命令,但是 netstat 依然保留兼容,Linux 系统同样自带 netstat,不过新版本 Linux 很多已经推荐 ss 命令替代 netstat,基础排错 netstat 依旧通用。

综合总结

netstat 本质就是系统内置网络状态查询命令,核心就是查连接、查监听端口、查路由、查网卡统计,搭配 - ano 是排错黄金组合,配合 findstr 可以快速定位指定端口,是网络故障排查必备基础命令。

【常见问题】

问题 1 netstat 命令能不能直接看到是哪个程序占用端口

回答 1 netstat 命令加上 - o 参数可以显示进程 PID,再通过 PID 对应程序名称,也就是 netstat -ano 组合,就可以定位占用端口的程序。

问题 2 netstat -r 参数是做什么的

回答 2 netstat -r 参数功能是查看系统路由表,可以看到默认网关、路由条目,用来排查跨网段网络不通的问题。

问题 3 netstat 命令里面 TIME_WAIT 是什么意思

回答 3 netstat 命令输出里 TIME_WAIT 代表连接主动关闭之后的等待状态,是 TCP 协议正常机制,大量 TIME_WAIT 会占用端口资源。

问题 4 Linux 里面 netstat 命令还推荐使用吗

回答 4 Linux 依然可以使用 netstat 命令,但是新版发行版优先推荐 ss 命令,ss 查询速度更快,netstat 属于兼容保留的传统命令。

免责声明:本内容为计算机命令科普,操作仅用于本机合法网络排查,禁止利用该命令从事违规网络探测行为。