Linux netstat 命令
发布日期:2025-04-06 01:55:29 浏览次数:11 分类:精选文章

本文共 2199 字,大约阅读时间需要 7 分钟。

netstat命令:理解与使用

netstat命令是Linux系统中一个非常实用的工具,用于查看系统的网络连接状态。本文将详细介绍netstat命令的使用方法、常用参数以及命令输出的含义。

netstat命令的作用

netstat命令用于显示系统的网络信息,包括网络连接、路由表、接口状态等。它是查看本机开启了哪些端口、查看有哪些客户端连接的重要工具。

常见用法

安装netstat命令

在使用netstat之前,需要确保其已安装。可以通过以下命令安装netstat:

yum install -y net-tools

查看所有协议的连接

以下命令可以查看系统中所有协议(如TCP、UDP)的连接状态:

netstat -anp

查看开启的进程和端口

以下命令可以查看系统中正在监听的端口和对应的进程:

netstat -tunlp

统计每个IP的连接数

以下命令可以统计每个IP地址的连接数:

netstat -n | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c| sort -rn | head

统计每个连接状态的数量

以下命令可以统计每个连接状态的数量,主要关注ESTABLISHED状态的连接数量:

netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key, "\t", sta[key]}'

命令参数

netstat命令支持多种参数,以下是常见参数的解释:

  • -r:显示路由表
  • -p:显示协议名称(如tcp、udp等)
  • -s:显示每个协议的统计信息
  • -t:显示使用TCP协议端口的连接
  • -u:显示使用UDP协议端口的连接
  • -l:仅显示监听(listen)状态的连接
  • -i:显示网络接口列表(网卡列表)
  • -a:显示所有协议的连接(如TCP、UDP、UNIX、IP、ICMP)
  • -n:以数字形式显示主机名(如localhost显示成127.0.0.1)
  • -c:指定每隔几秒刷新一次网络状态(如 netstat -c 3 表示每隔3秒执行一次)
  • -help:查看命令帮助

命令输出详解

以下是netstat命令的典型输出示例:

[root@localhost ~]$ netstat -tunlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4735/sshd           udp        0      0 0.0.0.0:68              0.0.0.0:*                           777/dhclient        udp        0      0 172.16.0.7:123          0.0.0.0:*                           2642/ntpd           udp        0      0 127.0.0.1:123           0.0.0.0:*                           2642/ntpd           udp        0      0 0.0.0.0:123             0.0.0.0:*                           2642/ntpd           udp6       0      0 :::123                  :::*                                2642/ntpd

输出解读

  • Proto:网络连接的协议,常见为TCP和UDP。
  • Recv-Q:表示接收到的数据,已经在本地的缓冲中,但还没有被进程取走。
  • Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,不具备ACK标志的数据包。
  • Local Address:表示本机监听的IP地址和端口号。
  • Foreign Address:表示要连接的远程主机IP地址和端口号。
  • State:连接状态,常见状态包括:
    • LISTEN:监听状态(仅对TCP协议需要监听)。
    • ESTABLISHED:已建立连接的状态。
    • SYN_SENT:主动发起连接的数据包。
    • SYN_RECV:接收到主动连接的数据包。
    • FIN_WAIT1:正在中断的连接。
    • FIN_WAIT2:已经中断的连接,但正在等待对方主机进行确认。
    • TIME_WAIT:一个刚被终止的连接,只会持续1至2分钟后变成LISTEN状态。
    • CLOSED:套接字没有被使用。
  • PID/Program name:进程ID和程序名称。

通过理解netstat命令的输出,可以全面了解系统的网络连接状态,帮助管理员更好地分析和管理网络问题。

上一篇:Linux netstat 命令:打印网络连接情况
下一篇:Linux Netfilter框架之conntrack连接跟踪机制

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年05月10日 14时53分05秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章