Linux系统netstat网络诊断命令详解

netstat是Linux系统中常用的一种网络查询和诊断工具,能够有效及时的查询到服务器网络问题的所在也能对网络上的攻击提供诊断并能有针对性的提出解决方法。虽然netstat网络命令比较强大当时其丰富的参数组合和结果显示太繁杂所以一般情况下配合awk文本处理命令使用从而高效的的到自己需要的结果。下面牛人为大家介绍下netstat命令的常用基本用法;


常用的命令组合和参数

1)对连接的IP按连接数量进行排序:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

2)查看不正常访问的情况,观察两个结果的参数是否过大。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a, S[a]}'

3)查看服务器所有的网络连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

4)查看TCP的连接数
netstat -n | grep  ^tcp | awk '{++S[$NF]} END {for(a in S) print a, S[a]}'

5)查看TCP连接状态,包括LISTEN,ESTABLISHED,Foreign,TIME_WAIT等信息:
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn  
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn  
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

6)查看80端口连接数排名前10的IP:
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n10

7)查找较多time_wait连接前20的IP地址和端口
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

8)查找较多的SYN连接:
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

9)查看当前服务器的并发访问数:
netstat -an | grep ESTABLISHED | wc -l

10)查看所有连接请求,能看到本地地址和远程IP地址和端口:
netstat -tn 2>/dev/null

11)查看只要established的状态,显示TCP端口:
netstat -tn | grep ESTABLISHED 2>/dev/null

12)查看访问某一ip的端口所有外部连接IP,这个是出站访问:
netstat -nt | grep 100.100.45.131:22 | awk '{print $5}' | awk -F: '{print ($1>$4?$1:$4)}' | sort | uniq -c | sort -nr | head

13)查80WEB服务端口所在的进程:
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1


以上网络状态查询的一些状态解释
CLOSED 无连接是活动的或正在进行
LISTEN 服务器在等待进入呼叫
SYN_RECV 一个连接请求已经到达,等待确认
SYN_SENT 应用已经开始,打开一个连接
ESTABLISHED 正常数据传输状态
FIN_WAIT1 应用说它已经完成
FIN_WAIT2 另一边已同意释放
ITMED_WAIT 等待所有分组死掉
CLOSING     两边同时尝试关闭
TIME_WAIT 表示处理完毕,等待超时结束的请求数
LAST_ACK 等待所有分组死掉


总结;
在日益复杂的网络环境下,攻击和防御是越来越多。所以熟悉netstat网络命令对其以后碰到的攻击和服务器网络优化将会有更多的益处。

本文由作者自行上传发布,文章仅代表作者个人观点。如需转载,务必声明出处和网址,否则保留相关权利。

网友评论 comments

发表评论

电子邮件地址不会被公开。必填项已用 *标注

暂无评论

牛人技术博客 | About US | 湘ICP备13000282号-8 |
Copyright © 2009 - 2023 NRJS Corporation, All Rights Reserved
添加图标到手机桌面
扫二维码
扫二维码
返回顶部