netstat 是 Linux 经典网络统计工具,用于查看端口监听、连接状态、接口统计等;常用命令包括 netstat -tuln 查监听端口、netstat -tan 查活跃连接、netstat -i 查网卡统计,配合 sudo、grep、watch 可增强排查能力。

netstat 是 Linux 系统中一个经典且功能强大的网络统计工具,能快速查看端口监听状态、连接关系、路由表、接口统计等信息。虽然在较新系统中逐渐被 ss 和 lsof 替代,但其语法直观、兼容性好,仍是运维排查的常用手段。
查看所有监听中的 TCP/UDP 端口
运行以下命令可列出当前正在监听(LISTEN)的端口及对应进程:
netstat -tuln
- -t:显示 TCP 连接
- -u:显示 UDP 连接
- -l:仅显示监听状态的套接字
- -n:以数字形式显示地址和端口(不解析主机名和服务名,加快输出)
若需同时显示进程名和 PID,加 -p 参数(需 root 权限):
sudo netstat -tulnp
输出中 Local Address 列为 0.0.0.0:80 表示监听所有 IPv4 地址;127.0.0.1:3306 表示仅本地访问;:::22 表示 IPv6 全局监听。
查看当前活跃的网络连接状态
检查已建立(ESTABLISHED)、等待关闭(TIME_WAIT、CLOSE_WAIT)等连接,有助于识别异常连接或连接泄漏:
netstat -tn
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- -t + -n 组合可快速列出所有 TCP 连接(不含监听端口)
- 添加 -a 可同时包含监听与非监听状态:netstat -tan
- 按状态筛选可用
grep,例如查所有 ESTABLISHED 连接:netstat -tn | grep ESTABLISHED
注意:大量 TIME_WAIT 属正常现象(尤其高并发 Web 服务),但持续增长的 CLOSE_WAIT 可能表示应用未正确关闭 socket。
查看网络接口收发包统计与错误信息
使用 -i 参数可获取各网卡的数据包收发、丢包、错误等底层统计:
netstat -i
关键列说明:
- RX-OK/TX-OK:接收/发送成功包数
- RX-ERR/TX-ERR:接收/发送错误包数(持续增长需关注硬件或驱动问题)
- RX-DRP/TX-DRP:因缓冲区满等原因被丢弃的包
- RX-OVR/TX-OVR:因超载导致的覆盖错误(多见于老旧网卡或过载场景)
配合 watch -n 1 'netstat -i' 可实时观察变化趋势。
结合其他命令快速定位占用端口的进程
当发现某端口被占用但 netstat -tulnp 未显示进程名时(如权限不足或进程已退出但端口未释放),可组合使用:
- 查指定端口(如 8080)的监听情况:netstat -tuln | grep :8080
- 根据 PID 查进程详情:ps -p PID -o pid,ppid,cmd,%mem,%cpu
- 替代方案(更推荐):lsof -i :8080 或 ss -tulnp | grep :8080
注意:netstat 不会自动刷新,如需动态监控,建议用 watch 包裹,例如:watch -n 2 'netstat -tn | grep :443' 每两秒刷新一次 HTTPS 连接状态。

















