每天一个 Linux 命令(16)—— netstat

·  阅读 529

这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

命令简介

netstat命令用于显示网络连接、内核路由表和网络接口等各种网络统计数据与状态信息等,一般用于检验本机各端口的网络连接情况。netstat 是在内核中访问网络及相关信息的程序,它能提供 TCP 连接,TCP 和 UDP 监听,进程内存管理的相关报告。

注意,netstat 命令将会隐退,替换的命令是 ss。取代 netstat -r 的是 iproute,取代 netstat -i 的是 ip -s link,取代 netstat -g 的是 ip maddr

命令格式

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
复制代码

命令参数

参数解释
-g,--groups显示 IPv4 与 IPv6 的广播组成员信息。
-i,-I=iface,--interfaces=iface显示指定或所有网络接口的统计数据及状态信息等。
-r,--route显示内核路由表。
-s,--statistics按照协议分类显示每个协议的汇总统计数据。
-a,--all显示所有套接字(包括正在监听和未监听的套接字)的状态信息。
-c,--continuous每秒一次,连续显示指定的信息。
-e,--extend显示附加的信息。连续指定 -e 选项两次将会显示更多的内容。
-l,--listening仅显示监听的套接字。
-n,--numeric只需显示 IP 地址或端口号即可,不必把IP地址解析成相应的主机名或端口名等。
-o,--timers显示时增加网络时钟方面的信息。
-p,--program表示显示每个套接字所属程序的名字与进程 ID。
-v,--verbose显示命令的处理过程与动作。
-t,--tcp仅显示 TCP 套接字的状态信息。
-u,--udp仅显示 UDP 套接字的状态信息。
-w,--raw仅显示原始套接字的状态信息。
-x,--unix仅显示 UNIX 域套接字的状态信息。
--inet,--ip显示 TCP、UDP 及原始套接字的状态信息。

输出字段

Active Internet connections (TCP, UDP, raw)

字段解释
Proto套接字采用的协议,如 tcp、udp 或 raw。
Recv-Q本地主机当前套接字接收队列中网络应用程序尚未读取的数据字节计数。
Send-Q本地主机当前套接字发送队列中尚未确认远程主机是否已读取的数据字节计数。
Local Address活动套接字的本地主机地址与端口号,其表示形式为“主机:端口号”,“主机”是主机名或 IP 地址。“端口号”是一个网络服务,可以是 /etc/services 文件定义的端口号,也可以是相应的服务名(如 telnet)。除非指定了 -n 选项,本地主机地址字段通常是主机名(或规范域名)与服务名的组合。
Foreign Address活动套接字的远程主机地址与端口号。表示方法同上。
State表示网络连接(套接字)的状态。下面是部分常见的状态(注意,raw 模式与 UDP 协议不提供网络连接状态信息,故其状态列通常为空)。

Active UNIX domain Sockets

字段解释
Proto套接字采用的协议(通常为 unix)。
RefCnt引用计数,表示加接到相应套接字的进程数量。
Flags标志字段。其中 ACC(SO_ACCEPTON)、 W(SO_WAITDATA)或 N(SO_NOSPACE)是可能出现的标志之一。ACC 标志表示一个套接字尚未连接,其相应的进程正在等待网络连接请求。
Type套接字访问类型。
PID/Program name打开套接字的进程的 PID 与进程名字。注意,仅当指定了 -p 选项后才输出此项,而且只有超级用户才能看到完整的信息。
Path套接字的文件路径名。

Kernel Interface table(netstat -i命令)

字段解释
Iface网络接口的名字。
MTU网络接口当前支持的最大传输单位。MTU 是 IP 模块的设备驱动程序一次收发时能够处理的最大字节数量。对于常规的以太网络接口、回环网络接口(loopback)和 IEEE 802.3 网络接口,MTU 的默认值分别为 1500、8232 和 1492。
Met网络接口当前支持的路由度量值。
RX-OK正确无误地接收分组数据的数量。
RX-ERR接收的分组数据本身有误的分组数据数量。
RX-DRP接收时由于各种原因而丢弃的分组数据数量。
RX-OVR由于接收错误或处理不及时等原因遗失的分组数据数量。
TX-OK正确无误发送的分组数据数量。
TX-ERR发送有误的分组数据数量。
TX-DRP发送时丢弃的分组数据数量。
TX-OVR由于发送错误而遗失的分组数据数量。
Flg网络接口标志。

Kernel IP routing table( netstat -r 命令)

字段解释
Destination表示路由的目的主机或网络。
Gateway表示把分组数据转发到目的主机或网络需要用到的网关。如果这个字段为星号 *,则意味着未使用网关。
Genmask确定路由时使用的子网掩码。当给定一个 IP 地址,期望找到一个适当的路由时,系统内核将会利用这个子网掩码对IP地址进行逻辑与运算,然后依次检索每一个路由表项,从中找出匹配的路由。
Flags表示路由当前状态的标志。
C表示缓存的路由。
MSSMSS(Maximum Segment Size)是最大数据段的字节数量,也是系统内核通过相应路由能够传输的最大数据报大小。
Window本地系统能够接收远程主机一次传输的最大数据量。
irtt“initial round trip time”的缩写,意即初始的往返传输时间。TCP 协议能够确保在通信的主机之间可靠地传输数据。如果数据传输有误,TCP 将会重传丢失的数据报。TCP 协议采用一个计数器,记录数据报传输到远程主机花费的时间,以及收到一个确认需要多长时间,因而知道在重传数据报之前需要等待多长时间。这个时间称作数据报传输与确认的往返时间。在开始建立网络连接时,TCP协议将会采用一个初始的往返时间作为默认值。对于大多数网络而言,TCP 协议采用的默认往返时间值是适当的,但对于一些速度较慢的网络,如果这个时间太短,将会引起不必要的数据报重传。必要的话,可以利用 route 命令设置 irtt 值。如果这个字段值为 0,意味着采用默认值。
Iface表示路由经由的网络接口。

参考文档

  • netstat命令
  • 《Linux 常用命令简明手册》—— 邢国庆编著
分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改