Linux netstat命令:显示网络相关的状态信息
Linux netstat命令用来显示网络相关的状态信息,语法格式如下:
【实例】显示出所有监听的 TCP 端口相关信息。
在 State 列中,链路状态主要有以下几种:
netstat [选项]
netstat 命令的常用选项见下表:常用选项 | 说 明 |
---|---|
-a | 显示所有连线中的 socket,此选项默认不显示网络监听相关信息 |
-n | 直接显示为 IP 地址 |
-P | 显示正在使用 socket 的程序识别码和程序名称 |
-t | 显示 TCP 传输协议的连线状况 |
-u | 显示 UDP 传输协议的连线状况 |
【实例】显示出所有监听的 TCP 端口相关信息。
$ netstat -anpt (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - tcp6 0 0 ::1:631 :::* LISTEN -TCP端口参数含义如下:
- Proto:网络连接的协议,一般就是 TCP 协议或 UDP 协议;
- Recv-Q:接收到的数据,已经在本地的缓存中,但是还没有被进程取走;
- Send-Q:从本机发送,对方还没有收到的数据,依然在本地的缓存中,不具备 ACK 标志的数据包;
- Local Address:本机的 IP 地址和端口号;
- ForeignAddress:远程主机的 IP 地址和端口号;
- State:链路状态。
在 State 列中,链路状态主要有以下几种:
- LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听;
- ESTABLISHED:已经建立连接的状态;
- SYN_SENT:SYN 发起包,就是主动发起连接的数据包;
- SYN_RECV:接收到主动连接的数据包;
- FIN_WAIT1:正在中断的连接;
- FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认;
- TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束;
- CLOSED:关闭的连接。