前提
netstat查看tcp网络信息的时候需要结合tcp的一些状态来查看,记忆力好的就不需要了O(∩_∩)O。
tcp简单介绍
三次握手连接
四次挥手关闭
netstat常用命令
netstat是一个查看、监控和排查网络的一个常用命令。
以下是 netstat 常用选项的介绍:
-a:显示所有网络连接和监听端口。-t:显示 TCP 连接。-u:显示 UDP 连接。-l:仅显示正在监听的端口。-n:以数字形式显示地址和端口号,而不是尝试解析主机名和服务名称。-p:显示哪个进程正在使用该端口。-r:显示路由表。-i:显示网络接口的统计信息。-s:显示网络统计信息。-c:持续输出结果,每隔一段时间更新一次。
查找本地tcp监听端口
netstat -lt
本地有个8089的端口在开启,直接-l是所有、加t显示的是tcp的/u会显示udp的
列出所有tcp连接
netstat -at
看后面的state然后结合前面的tcp连接状态图,发现ssh在通信,起得监听端口还没连接
列出所有tcp连接+过滤
用多个grep进行过滤
netstat -at | grep 8089
过滤8089端口
netstat -act | grep 8089
c持续输出下,发了个请求
netstat -an | grep 8089 | grep TIME_WAIT
过滤 8089 下 tim_wait状态的连接
time_wait后都是listen 说明服务端也有主动发起的关闭连接
统计服务端的连接数
netstat -an | grep 8080 | wc -l
wc -l:计算过滤后的行数,即连接数。 可以grep多个进行tcp状态过滤
找的一些高级查询
1.查找请求数前20个IP(常用于查找攻来源):
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,”:”);++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20
2.用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” '{print $1″.”$2″.”$3″.”$4}' | sort | uniq -c | sort -nr |head -20
3.查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
4.找查较多的SYN连接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
5.根据端口列进程
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1
TCP 连接的统计信息
netstat -st
- active connection openings 包括活动连接打开次数 主动打开的连接
- passive connection openings 被动连接打开次数 服务器接收的连接数
- failed connection attempts 失败连接尝试次数
- onnection resets received 接收到的重置连接次数
- connections established 已建立的连接数
- segments received 接收到的数据段数量
- segments sent out 发送出去的数据段数量
- segments retransmitted 重传的数据段数量 过多的重传表示网络不稳定或丢包严重
- bad segments received 接收到的错误数据段数量
- resets sent发送的重置连接数量
- InCsumErrors 校验和错误的数量。
网络的一些问题查看
Recv-Q/Send-Q:接收和发送队列的字节数。非零值表示数据未能及时接收或发送,可能存在网络延迟或带宽瓶颈
使用 netstat -an 监控连接状态:关注 TIME_WAIT、CLOSE_WAIT、SYN_SENT、SYN_RECV 等状态的数量是否异常 结合tcp状态。
检查 Recv-Q 和 Send-Q 的积压情况:如果积压数据较多,表明网络可能存在延迟或带宽不足。
通过 netstat -s 查看TCP重传和丢包情况:过多的重传通常意味着网络不稳定,需要通过其他工具进一步排查丢包点。
结合其他工具(如 iftop、ping、traceroute)进行链路分析:确认是否存在带宽耗尽、丢包或网络延迟过高的情况。