1 背景
Linux系统中有各种查看网络流量的工具,比如sar、iftop、nethogs等,它们可以从不同的纬度来分析系统中流量信息。iftop 是一个用于实时监控网络流量的命令行工具,有可交互图形界面,可以指定网络接口统计实时流量。
本文主要介绍 iftop 的用法,最终通过 iftop 找到流量高的链接以及相关联的进程。
2 安装方法
该工具位于 epel 库中,需要先安装 epel 库。
# centosyum install epel-release -yyum install iftop -y# debianapt install epel-release -yapt install iftop -y3 使用方法
3.1 启动指令
iftop参数:-i 指定需要检测的网络接口,如:# iftop -i eth1-B 将输出以byte为单位显示网卡流量,默认是bit-n 将输出的主机信息都通过IP显示,不进行DNS解析,也可以在交互界面切换-N 只显示连接端口号,不显示端口对应的服务名称-F 显示特定网段的网卡进出流量 如iftop -F 192.168.85.0/24-h 帮助,显示参数信息-p 以混杂模式运行iftop,显示所有网络流量,而不仅仅是与本机有关的流量,此时iftop可以用作网络嗅探器-P 显示主机以及端口信息-m 设置输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示 如:# iftop -m 100M-f 使用筛选码选择数据包来计数 如iftop -f filter code-b 不显示流量图形条-c 指定可选的配置文件 如iftop -c config file-t 使用不带ncurses的文本界面, 以下两个是只和-t一起用的: -s num num秒后打印一次文本输出然后退出,-t -s 60组合使用,表示取60秒网络流量输出到终端 -L num 打印的行数-f 参数支持tcpdump的语法,可以使用各种过滤条件。3.2 界面说明
该工具可以较为直观地展示交互的对象,其中 xxx-17、xxx-18是交互的主机hostname,可以按下键盘的“s”键来选择是否需要解析 hostname。
第①部分:带宽使用情况。
第②部分:外部连接列表,即记录了哪些IP正在和本机的网络连接。
右侧部分是实时流量信息,分别是该访问IP连接到本机2秒、10秒和40秒的平均流量。
=>表示发送数据,<=表示接收数据。
第③部分。
第一列:TX表示发送流量,RX表示接收流量,TOTAL表示总流量。
第二列cum:表示第一列各种情况的总流量。
第三列peak:表示第一列各种情况的流量峰值。
第四列rates:表示第一列各种情况2秒、10秒、40秒内的平均流量。
工具默认展示速率,刻度条会随当前速率峰值动态变化,可以按下键盘的“b”来选择是否要以柱状图显示连接速率。
3.3 参数说明
h:切换是否显示帮助。n:切换显示本机的IP或主机名。s:切换是否显示本机的host信息。d:切换是否显示远端目标主机的host信息。t:切换显示格式为2行、1行、只显示发送流量或只显示接收流量。N:切换显示端口号或端口服务名称。S:切换是否显示本机的端口信息。D:切换是否显示远端目标主机的端口信息。p:切换是否显示端口信息。P:切换暂停或继续显示。b:切换是否显示平均流量图形条。B:切换计算2秒或10秒或40秒内的平均流量。T:切换是否显示每个连接的总流量。l:打开屏幕过滤功能,输入要过滤的字符。比如输入相应IP地址,回车后,屏幕就只显示这个IP相关的流量信息。L:切换显示画面上边的刻度,刻度不同,流量图形条会有变化。j或k:向上或向下滚动屏幕显示的连接记录。1或2或3:根据右侧显示的三列流量数据进行排序。<:根据左边的本机名或IP排序。>:根据远端目标主机的主机名或IP排序。o:切换是否固定只显示当前的连接。f:编辑过滤代码。!:调用Shell命令。q:退出。4 使用提示
4.1 为什么启动后,没有流量信息?
需要指定通信网卡,指定方式为:
iftop -i eth14.2 查看端口对应的进程
netstat -tunlp |grep <port># <port> 为上一步查看的端口。
4.3 我要如何监测端口信息?
在界面按下’S‘(大写S)即可显示本主机端口通信信息。
在界面按下’D‘(大写D)即可显示对端主机端口通信信息。
4.4 我要如何监测指定的地址?
iftop启动时指定监测的地址段:
-F 显示特定网段的网卡进出流量 如iftop -F 192.168.85.0/24