遇到的问题:有时会遇到服务器跑满带宽的情况,如何分析具体是什么服务占用了带宽,或者是哪个IP请求占用了带宽
以下提供几种方式:1. 查看占用带宽的IP和端口;
2. 如果是HTTPS的包,如何查看具体是请求的哪个域名;
具体操作:1. 查看占用带宽的IP和端口;可安装iftop工具,直接通过iftop命令查看占用情况;
如iftop -NnP
2. HTTPS的包,如何查看具体是请求的哪个域名可通过抓包,查看客户端发起的SNI包,包中会带了具体的域名
抓包:
tcpdump -i any port 443 -w https.cap
-i any,是监听所有网络接口
port 443是 过滤源或目标端口为 443 的流量
-w https.cap 将包抓到保持为 https.cap
分析包:
打开https.cap,输入 tls.handshake.extensions_server_name 进行过滤所有包含 SNI(域名) 的 TLS 握手包
这个是客户端请求的域名,如果客户端请求别的域名,会显示上不同的域名,此处非服务器端返回的证书包含域名;