Linux netstat 命令

发布于:2024-04-19 ⋅ 阅读:(90) ⋅ 点赞:(0)

 目录

命令格式与基本用法

显示网络连接

查看路由表

接口统计信息

协议统计信息

持续监控网络状态

其他功能

示例输出解释


Linux netstat 命令 是一个强大的网络工具,用于显示网络连接、路由表、接口统计、多播成员、网络协议统计信息等与网络相关的详细状态。它主要用于诊断网络问题、监控网络活动以及理解系统网络配置。以下是对netstat命令的详细讲解:

命令格式与基本用法

netstat命令接受一系列选项来指定要显示的信息类型和格式。一些常用的选项包括:

  • -a 或 --all:显示所有活动的连接和监听(Listening)的套接字(包括TCP、UDP、Unix域套接字等)。
  • -t 或 --tcp:仅显示TCP协议的连接。
  • -u 或 --udp:仅显示UDP协议的连接。
  • -n 或 --numeric:直接显示数字形式的IP地址和端口号,而不是尝试查找对应的主机名和服务名,提高显示速度。
  • -l 或 --listening:仅显示处于监听状态(即等待连接请求)的套接字。
  • -p 或 --programs:显示持有相应套接字的进程ID(PID)和程序名(需要权限)。
  • -r 或 --route:显示路由表信息。
  • -s 或 --statistics:显示每个协议的统计信息,如TCP、UDP、IP、ICMP等。
  • -c 或 --continuous:持续刷新输出,常用于监控网络状态的变化。
  • -i 或 --interfaces:显示网络接口(网卡)状态信息。
  • -e 或 --extend:显示扩展信息,如接口的发送和接收数据量、错误计数等。

显示网络连接

使用netstat可以查看当前系统中的网络连接状态:

  • 显示所有活动连接(包括监听状态):

    netstat -a
  • 显示所有TCP连接:

    netstat -at
  • 显示所有监听TCP端口:

    netstat -lt
  • 显示监听TCP端口及其对应的程序信息:

    1netstat -plt

查看路由表

路由表决定了数据包如何从本机到达目的网络。使用以下命令查看路由表:

netstat -rn

接口统计信息

获取网络接口(如以太网卡、无线网卡等)的统计信息,包括发送/接收数据量、错误计数等:

netstat -i

协议统计信息

查看特定网络协议(如TCP、UDP、IP等)的统计信息,如连接建立、断开次数、发送/接收的数据包数、错误计数等:

netstat -s

持续监控网络状态

要实时监控网络状态变化,可以使用-c选项持续刷新输出:

netstat -ct

其他功能

netstat还支持显示多播成员、伪装(masquerading)连接、FIB(转发信息库)信息等,这些功能相对较少使用,通常需要结合特定的网络环境和配置来查阅和理解。

示例输出解释

  • netstat的输出可能包含以下部分或全部信息:
    • Active Internet connections (servers and established):活动的互联网连接(监听和已建立的)。
    • Proto:使用的协议(TCP、UDP、RAW等)。
    • Recv-Q 和 Send-Q:接收队列和发送队列的长度,表示待处理的数据量。
    • Local Address 和 Foreign Address:本地地址(源地址)和远程地址(目标地址),格式为IP:Port
    • State:连接状态,如ESTABLISHEDTIME_WAITLISTEN等,反映了TCP连接的不同阶段。
    • PID/Program name:持有该套接字的进程ID和程序名。
  • 路由表输出通常包含以下字段:
    • Destination:目标网络地址。
    • Gateway:下一跳网关地址。
    • Genmask:子网掩码。
    • Flags:路由标志,如U(已启用)、H(主机路由)、G(网关)、R(重定向)等。
    • Metric:路由度量,用于选择最优路径。
    • RefUseIface:引用计数、使用计数、接口名称。
  • 接口统计信息包括:
    • Name:接口名称,如eth0lo等。
    • MTU:最大传输单元。
    • RX 和 TX:接收和发送的数据量、错误计数、丢包计数等。