1. 查看tcp、udp连接
~]# netstat -nt --->>>查看tcp连接,注意看第二列和第三列
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 1 0 192.168.11.82:8080 192.168.11.81:56208 CLOSE_WAIT
tcp 0 0 192.168.11.82:22 172.16.69.49:6160 ESTABLISHED
tcp 1 0 192.168.11.82:8080 192.168.11.81:56203 CLOSE_WAIT
tcp 1 0 192.168.11.82:8080 192.168.11.81:56201 CLOSE_WAIT
tcp 1 0 192.168.11.82:8080 192.168.11.81:56204 CLOSE_WAIT
tcp 1 0 192.168.11.82:8080 192.168.11.81:56205 CLOSE_WAIT
tcp 1 0 192.168.11.82:8080 192.168.11.81:56202 CLOSE_WAIT
tcp 0 36 192.168.11.82:22 172.16.69.49:6291 ESTABLISHED
~]# netstat -nua --->>>查看udp连接,注意看第二列和第三列
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:48638 0.0.0.0:*
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp 0 0 0.0.0.0:777 0.0.0.0:*
udp6 0 0 :::111 :::*
udp6 0 0 ::1:323 :::*
udp6 0 0 :::777 :::*
如下取自man netstat的结果:
Recv-Q
Established: The count of bytes not copied by the user program connected to this socket.
Listening: Since Kernel 2.6.18 this column contains the current syn backlog.
Send-Q
Established: The count of bytes not acknowledged by the remote host.
Listening: Since Kernel 2.6.18 this column contains the maximum size of the syn backlog.
Recv-Q Send-Q分别表示网络接收队列、网络发送队列。Q是Queue的缩写。
recv-Q 表示网络接收队列
表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()
如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。
send-Q 表示网路发送队列
对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
2. TCP连接状态说明
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
或者使用
netstat -an|awk '/tcp/ {print $6}'| sort | uniq -c
TIME_WAIT 8947
FIN_WAIT1 15
FIN_WAIT2 1
ESTABLISHED 55
SYN_RECV 21
CLOSING 2
LAST_ACK 4
TCP连接状态详解:
状态(state) | 说明---------------------------------------------------------------------------- |
---|---|
LISTEN | 侦听来自远方的TCP端口的连接请求 |
SYN-SENT | 再发送连接请求后等待匹配的连接请求 |
SYN-RECEIVED | 再收到和发送一个连接请求后等待对方对连接请求的确认 |
ESTABLISHED | 代表一个打开的连接 |
FIN-WAIT-1 | 等待远程TCP连接中断请求,或先前的连接中断请求的确认 |
FIN-WAIT-2 | 从远程TCP等待连接中断请求 |
CLOSE-WAIT | 等待从本地用户发来的连接中断请求 |
CLOSING | 等待远程TCP对连接中断的确认 |
LAST-ACK | 等待原来的发向远程TCP的连接中断请求的确认 |
TIME-WAIT | 等待足够的时间以确保远程TCP接收到连接中断请求的确认 |
CLOSED | 没有任何连接状态 |