网络状态查看
概述
netstat 是一款命令行工具,可列出系统上所有的网络套接字连接情况,包括TCP、UDP以及UNIX等套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。
使用方式
在 SylixOS 系统中,通过在 Shell 界面使用 netstat
命令来显示所有的网络相关信息,如网络连接、路由表、接口状态、多播成员等。
在Shell命令行通过 help netstat
可以查看到该指令的实际使用方式。
[root@sylixos:/root]# help netstat
show net status
-h, --help display this message
-r, --route display route table
-i, --interface display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-w, --raw display raw socket information
-t, --tcp display tcp socket information
-u, --udp display udp socket information
-p, --packet display packet socket information
-x, --unix display unix socket information
-l, --listening display listening server sockets
-k, --keepalive display tcp keepalive information
-a, --all display all sockets
-A <net type>, --<net type> select <net type>, <net type>=inet, inet6 or unix
netstat {[-wtux --A] -i | [-hrigsapl]}
常用选项如下:
- -h :显示帮助信息。
- -r :显示路由表信息。
- -i :显示接口信息。
- -g :显示多播组成员信息。
- -s :显示网络状态信息。
- -w :显示原始套接字信息。
- -t :显示 TCP 信息。
- -u :显示 UDP 信息。
- -p :显示 PACKET 套接字信息。
- -x :显示 UNIX 域套接字信息。
- -l :显示所有 LISTEN 状态的信息。
- -a :显示所有套接字信息。
输出信息含义
在 SylixOS 中,执行 netstat -a
命令。
[root@sylixos:/root]# netstat -a
--UNIX--:
TYPE FLAG STATUS LCONN SHUTD NREAD MAX_BUFFER PATH
--PACKET--:
TYPE FLAG PROTOCOL INDEX MMAP MMAP_SIZE TOTAL DROP
--TCP LISTEN--:
LOCAL REMOTE STATUS RETRANS RCV_WND SND_WND
*:23 *:* listen 0 0 0
*:21 *:* listen 0 0 0
--TCP--:
LOCAL REMOTE STATUS KA RETRANS RCV_WND SND_WND
10.4.120.37:23 10.4.0.105:63083 estab * 0 65535 1048576
--UDP--:
LOCAL6 REMOTE6 UDPLITE
*:137 *:0 no
*:161 *:0 no
从输出结果可以看出,显示分为五部分:UNIX、PACKET、TCP LISTEN、TCP、UDP。
- UNIX 部分
- TYPE:UNIX 域套接字类型:stream、seqpacket、dgram。
- FLAG:I/O标志,如 NONBLOCK。
- STATUS:当前状态(仅对于类型为 stream):none、listen、connect、estab。
- LCONN :本地 socket 连接数量。
- SHUTD:当前关闭状态:rw、r、w、no。
- NREAD:有效数据字节数(单位字节)。
- MAX_BUFFER:最大接收缓冲区大小;
- PATH:UNIX 域文件路径名。
- PACKET 部分
- TYPE:PACKET 套接字类型:raw、dgram。
- FLAG:I/O标志,如 NONBLOCK。
- PROTOCOL:协议类型,IPPROTO_IP - IPv4 网络协议 、IPPROTO_ICMP - 因特网控制报文协议 、IPPROTO_TCP - 传输控制协议 、IPPROTO_UDP - 用户数据报协议、IPPROTO_IPV6 - IPv6 网络协议 、IPPROTO_RAW - 原始 IP 数据包协议 。
- INDEX:网络接口索引。
- MMAP:是否进行了 mmap。
- MMAP_SIZE:映射内存的大小。
- TOTAL:总网络包数量。
- DROP:丢弃的网络包数量。
- TCP LISTEN 部分
- LOCAL:本地 IP 地址及端口号。
- REMOTE:远端 IP 地址及端口号。
- STATUS:TCP 状态。
TCP 状态 | 说明 |
---|---|
CLOSED | 初始关闭状态 |
LISTEN | 监听状态,服务器端可以接受连接 |
SYN_SENT | 客户端发送 SYN 报文后进入此状态 |
SYN_RCVD | 服务器端接收到 SYN 报文后进入此状态 |
ESTABLISHED | 连接已经建立 |
FIN_WAIT_1 | 主动关闭连接一方发送 FIN 报文进入此状态(一般很难看到) |
FIN_WAIT_2 | 进入 FIN_WAIT_1 状态的一端,当收到另一端的ACK后进入此状态 |
CLOSE_WAIT | 另一方请求关闭连接,回应完ACK后进入此状态,然后就可以做关闭本地等操作 |
CLOSING | 发起关闭方发送 FIN 报文,在没有收到ACK报文前收到了另一方的 FIN 报文进入此状态(这种情况可能会发送在双方同时请求关闭) |
LAST_ACK | 被动关闭一方发送完 FIN 报文后,最后等待对方的ACK报文进入此状态 |
TIME_WAIT | FIN_WAIT_1 状态下,收到了对方同时带 FIN 标志和ACK标志的报文时进入此状态而无需进入 FIN_WAIT_2 状态 |
- RETRANS:重传计数。
- RCV_WND:接收窗口大小。
- SND_WND:发送窗口大小。
- TCP 部分
- LOCAL:本地 IP 地址及端口号。
- REMOTE:远端 IP 地址及端口号。
- STATUS:TCP 状态。
- RETRANS:重传计数。
- RCV_WND:接收窗口大小。
- SND_WND:发送窗口大小。
- UDP 部分
- LOCAL6:本地 IP 地址及端口号。
- REMOTE6:远端 IP 地址及端口号。
- UDPLITE:是否是 UDPLITE。
显示网络接口信息
在 SylixOS 中,执行 netstat
-i
命令。
[root@sylixos:/root]# netstat -i
|RECEIVE |TRANSMIT
FACE MTU RX-BYTES RX-OK RX-ERR RX-DRP RX-OVR TX-BYTES TX-OK TX-ERR TX-DRP TX-OVR FLAG
en3 : 1500 0 0 0 0 0 0 0 0 0 0 UBEthG
en2 : 1500 935552351 15388980 0 0 0 233707 4525 0 0 0 UBLEthG
en1 : 1500 0 0 0 0 0 0 0 0 0 0 UBEthG
lo0 : 0 168 3 0 0 0 168 3 0 0 0 UPL
显示选项如下所示:
- FACE:系统中存在的所有网络接口。
- MTU:最大传输单元,通常默认是 1500。
- RX-BYTES:接收数据的字节数。
- RX-OK:成功接收的数据包数。
- RX-ERR:接收的错误数据包数。
- RX-DRP:接收时,丢弃的数据包数。
- RX-OVR:接收时,由于过速(在数据传输中,由于接收设备不能接收按照发送速率传送来的数据而使数据丢失)而丢失的数据包数。
- TX-BYTES:发送数据的字节数。
- TX-OK:成功发送的数据包数。
- TX-ERR:发送的错误数据包数。
- TX-DRP:发送时,丢弃的数据包数。
- TX-OVR:发送时,由于过速而丢失的数据包数。
- FLAG:U - 网络接口处于启动状态、B - 支持广播(Broadcast)、P - 网络接口是点对点连接、D - 网络接口 Dhcp 开启、L - 网络接口已经连接(Linkup)、Eth - 网络接口是以太网设备支持 ARP、G - 网络接口支持 IGMP。