一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux 网络监测工具:netstat 的基本用法和输出解析

时间:2026-07-13 08:38:52 编辑:袖梨 来源:一聚教程网

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

netstat 是 Linux 系统中用于查看网络连接、监听端口、路由表和接口统计的经典命令行工具。虽然现代系统更倾向用 ss(性能更好),但 netstat 因输出直观、参数丰富,仍是排查网络问题的首选之一。

常用组合命令快速上手

日常使用中,几个高频组合能覆盖大部分需求,建议熟记:

  • netstat -tuln:查看本机所有 TCP/UDP 监听端口(数字格式),不解析域名或服务名,速度快、信息清晰
  • netstat -tulnp:在上一条基础上加进程信息(需 root 权限),可明确知道哪个程序占用了某端口
  • netstat -an | grep :80:快速筛选与 80 端口相关的所有连接(含监听、已建立、关闭中等状态)
  • netstat -r:显示当前内核路由表,等效于 route -n
  • netstat -i:列出各网卡收发包、错误、冲突等基础统计,适合初步判断网卡是否异常

关键输出字段怎么看

执行 netstat -tuln 后典型输出如下:

Proto Recv-Q Send-Q Local Address Foreign Address State

重点关注这几列:

  • Proto:协议类型,tcpudpunix;UDP 无连接状态,所以 State 列为空或显示 *
  • Local Address:本机绑定地址,0.0.0.0:22 表示监听所有 IPv4 地址的 22 端口;127.0.0.1:631 表示仅本地可访问
  • State:TCP 连接状态,常见值有:
    LISTEN —— 服务正在等待连接(监听端口)
    ESTABLISHED —— 双方已握手成功,正常通信中
    TIME_WAIT —— 主动关闭方等待确认,短连接多时该状态会大量出现
    CLOSE_WAIT —— 对端已关闭,本机未调用 close,可能程序未正确释放资源

如何查端口是否被占用

判断某个端口(如 3306)是否已被监听,分两步操作更可靠:

  • 先运行 netstat -tuln | grep :3306,看是否有 LISTEN 行;有即表示被占用
  • 再加 -p 查归属:sudo netstat -tulnp | grep :3306,末尾会显示进程名和 PID,例如 mysqldjava
  • 注意:普通用户执行 -p 时,非本用户进程可能显示为 - 或权限不足,此时需 sudo
  • 若没查到,不代表绝对空闲——某些程序可能用 raw socket 或未走标准套接字,需结合 lsof -i :3306 辅助验证

补充说明与注意事项

netstat 默认不显示监听端口,必须显式加 -l;只加 -a 也不够,因为 -a 是“所有连接”,但 LISTEN 属于服务端 socket,需配合 -l 才能完整呈现。

CentOS 7+/Ubuntu 18.04+ 等较新系统默认不预装 netstat,需手动安装:
sudo yum install -y net-tools(RHEL/CentOS)
sudo apt install -y net-tools(Debian/Ubuntu)

输出中 Recv-QSend-Q 正常应为 0;若持续非零,说明应用读写阻塞或网络拥塞,需进一步查进程或网络链路。

热门栏目