0%

查看linux连接数和状态

1. Netstat 命令

1.1 查看 TCP 连接数及状态

1
2
3
4
5
6
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


ESTABLISHED 1028
FIN_WAIT1 1
TIME_WAIT 3314

1.2 查看状态的次数

1
2
3
4
5
6
netstat -an | grep ESTABLISHED | wc -l
1215

netstat -an | grep TIME_WAIT | wc -l
4678

1.3 连接到其他服务器数量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# tu的意思只查询tcp 和 udp
netstat -ntu| awk '{print $4}' | sort | uniq -c | sort -nr | head

53 172.31.41.180:9061
45 172.31.41.180:9038
36 127.0.0.1:9093
29 127.0.0.1:9082
24 127.0.0.1:9051
22 127.0.0.1:9038
20 127.0.0.1:9091
19 127.0.0.1:9041
15 172.31.41.180:9082
11 127.0.0.1:9030

netstat -ntu| grep ESTABLISHED | awk '{print $4}' | sort | uniq -c | sort -nr | head
netstat -ntu| grep TIME_WAIT | awk '{print $4}' | sort | uniq -c | sort -nr | head

1.4 连接到本机的数量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head 

2987 127.0.0.1
1118 172.31.1.150
453 172.31.26.159
90 172.31.20.166
84 172.31.52.62
75 172.31.41.180
44 172.31.31.250
29 172.31.0.230
26 172.31.18.56
23 3.101.114.45


netstat -ntu | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
netstat -ntu | grep TIME_WAIT | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

2. SS 命令

2.1 查看 TCP 的连接状态

1
2
3
4
5
6
ss  -tan|awk 'NR>1{++S[$1]}END{for (a in S) print a,S[a]}'


LISTEN 35
ESTAB 986
TIME-WAIT 3560

2.2 查看 socket 的概要统计信息

1
2
3
4
5
6
7
8
9
10
11
12
13
ss -s


Total: 884
TCP: 4392 (estab 667, closed 3690, orphaned 0, timewait 3687)

Transport Total IP IPv6
RAW 1 0 1
UDP 4 3 1
TCP 702 404 298
INET 707 407 300
FRAG 0 0 0

3. 参考资料

可以加首页作者微信,咨询相关问题!