Linux系统出现关于网络超时或应用超时问题排除方向
1、 统计系统当前连接总数
netstat -an | wc -l
2、按连接状态统计
netstat -an | awk '{print $6}' | sort | uniq -c
例如:检查ftp
netstat -an | grep ':21 ' | awk '{print $6}' | sort | uniq -c
3、统计每个 IP 的连接数
netstat -an | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -n 20
例如:检查ftp
netstat -an | grep ':21 ' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -n 20
4、检查连接持续时间(配合ss)
netstat 不能直接显示连接持续时间,但 ss 可以:
例如:检查ftp
ss -o state established '( dport = :21 )' | head -n 20
5、正确查看最大空闲时间
ss -ti state established '( dport = :21 )' | grep -oP 'lastsnd:\K\d+' | sort -n | tail -n 1
这会输出最大 lastsnd(单位 ms),比如:Max: 345000 如果大于 300000(5分钟),说明有连接空闲过久。
ss -ti state established '( dport = :21 )' | grep -oP 'lastsnd:\K\d+' | awk 'max<$1{max=$1} END {print "Max:",max}'
如何列出这些长时间未活动的连接
ss -ti state established '( dport = :21 )' | awk '/lastsnd:/ {match($0, /lastsnd:([0-9]+)/, a); if (a[1] > 300000) print $0}'

浙公网安备 33010602011771号