如何追踪网络流量
背景
某些场景下通过监控发现了流量比较大,不太合理,需要知道这些流量都是哪些进程访问哪些服务触发的
方法
- 定位流量是由哪个进程触发的
- 定位流量主要是访问哪些ip导致的
- 定位具体的端口有较大的流量
工具
nethogs/iftop/tcptrack
定位进程
sudo nethogs
从上图可以看到总的流量,以及每个进程的流量大小。这里可以确认流量主要是3820的java进程消耗的
定位ip
sudo iftop -p -n -B
通过上图可以看到流量主要是消耗在 10.0.48.1的ip上
定位端口
10.0.48.1 有可能是一个mapping ip,需要进一步查看具体
sudo tcptrack -r 5 -i eth0 //然后输入小写s,按流量排序
sudo tcptrack -r 5 -i eth0 host 10.0.48.1 //filter 语法和tcpdump一样
可以看到4355/4356端口上流量相对较大
软件安装
后续发布新镜像都会带上这三个软件的rpm安装包
目前可以手动下载这三个rpm安装包: