参考推荐:【Linux】之【网络】相关的命令及解析[ethtool、nload、nethogs、iftop、iptraf、ifstat]_A-刘晨阳的博客-CSDN博客
1、ethtool-查询设置网卡参数
-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -c display the Coalesce information of the specified ethernet card。
-C Change the Coalesce setting of the specified ethernet card。
-g Display the rx/tx ring parameter information of the specified ethernet card。
-G change the rx/tx ring setting of the specified ethernet card。
-i 显示网卡驱动的信息,如驱动的名称、版本等。
-d 显示register dump信息, 部分网卡驱动不支持该选项。
-e 显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E 修改网卡EEPROM byte。
-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K 修改网卡Offload参数的状态。
-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。
-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t 让网卡执行自我检测,有两种模式:offline or online。
-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。
使用语法:
ethtool [参数]
设置网口工作方式:
[root@host ~]# ethtool -s eth0 autoneg off speed 100 duplex full
[root@host ~]# ethtool eth0
查看网卡,在接收/发送数据时,有没有出错 :
[root@host ~]# ethtool -S eth0
停止网卡的发送模块TX:
[root@host ~]# ethtool -A tx off eth0
2、nload – 实时统计网卡带宽使用率工具
监控全部网卡:
[root@host ~]# nload
仅仅监控网卡用法:
[root@host ~]# nload eno1
-a:这个好像是全部数据的刷新时间周期,单位是秒,默认是300.
-i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
-m:不显示流量图,只显示统计数据。
-o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
-t:显示数据的刷新时间间隔,单位是毫秒,默认500。
-u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的。注意大小写单位不同!
3、 nethogs – 实时统计网络带宽使用率工具
NetHogs 是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。
来自NetHogs项目网站:
NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况。这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。
语法:
nethogs [参数] [设备]
usage: nethogs [-V] [-h] [-b] [-d seconds] [-v mode] [-c count] [-t] [-p] [-s] [device [device [device ...]]]
-V : 打印版本。
-h : 打印此帮助。
-b : bughunt模式 - 暗示tracemode。
-d : 延迟更新刷新率(以秒为单位)。 默认值为1。
-v : 视图模式(0 = KB / s,1 =总KB,2 =总B,3 =总MB)。 默认值为0。
-c : 更新次数。 默认为0(无限制)。
-t : tracemode.
-p : 煽动混乱模式(不推荐)。
-s : 按发送列排序输出。
-a : 监控所有设备,甚至环回/停止。
device : 要监控的设备。 默认是所有接口启动和运行,不包括环回 当nethogs运行时,按: q:退出
s:按SENT流量排序
r:按RECEIVE流量排序
m:在总(KB,B,MB)和KB / s模式之间切换
-d : 刷新间隔
-h : 帮助
-p : promiscious 模式
-t : trace模式
-V : 版本
实例:
nethogs -d 5 #设置5秒钟的刷新频率
nethogs eth0 #监视设备(eth0)的网络带宽
nethogs eth0 eth1 #同时监视eth0和eth1接口
关于NetHogs命令行工具的完整参数列表,可以参考NetHogs的手册,使用方法是在终端里输入man nethogs
或者sudo man nethogs
,更多信息请参考NetHogs项目主页。
4、iftop – 套接字及进程的网络利用率
iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。
iftop可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况。
虽然iftop报告每个连接所使用的带宽,但它无法报告参与某个套按字连接的进程名称/编号(ID)。不过由于基于pcap库,iftop能够过滤流量,并报告由过滤器指定的所选定主机连接的带宽使用情况。
语法:
iftop [选项]
-h 显示此消息
-n 不做主机名查找
-N 不将端口号转换为服务
-p 以混杂模式运行(显示其他 同一网段的主机)
-b 不显示流量条形图
-B 以字节为单位显示带宽
-i interface 监听命名接口
-f 过滤代码 使用过滤代码选择要计数的数据包 (默认:无,但只计算 IP 数据包)
-F net/mask 显示流量流入/流出 IPv4 网络 -G net6/mask6 显示流量流入/流出 IPv6 网络
-l 显示和计算链接本地 IPv6 流量(默认值:关闭)
-P 显示端口和主机 -m limit 设置带宽规模的上限 -c config file 指定备用配置文件
-t 使用没有 ncurses 的文本界面
排序顺序:
-o 2s 按第一列排序(2s 流量平均值)
-o 10s 按第二列排序(10s 平均流量)[默认]
-o 40s 按第三列排序(40s 平均流量)
-o source 按源地址排序
-o destination 按目标地址排序
以下选项仅可与 -t 结合使用
-s num 在 num 秒后打印一个文本输出,然后退出
-L num 要打印的行数
第一行为带宽,这里为1Mbit,不是字节哦. 连接列表,最后三列分别是2秒,10秒和40秒的平均流量 =>
代表发送 <=
代表接收 最后三行表示发送,接收和全部的流量, 第二列为你运行iftop到目前流量,第三列为高峰值,第四列为平均值。
实例:
iftop # 默认是监控第一块网卡的流量
iftop -i eth1 # 监控eth1
iftop -n # 直接显示IP, 不进行DNS反解析
iftop -N # 直接显示连接埠编号, 不显示服务名称
iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0 # 显示某个网段进出封包流量
5、iptraf – 实时监视网卡流量
iptraf命令 可以实时地监视网卡流量,可以生成网络协议数据包信息、以太网信息、网络节点状态和ip校验和错误等信息。
语法:
iptraf [选项]
-i 网卡:立即在指定网络接口上开启IP流量监视;
-g:立即开始生成网络接口的概要状态信息;
-d 网卡:在指定网络接口上立即开始监视明细的网络流量信息;
-s 网卡:在指定网络接口上立即开始监视TCP和UDP网络流量信息;
-z 网卡:在指定网络接口上显示包计数;
-l 网卡:在指定网络接口上立即开始监视局域网工作站信息;
-t 时间:指定iptraf指令监视的时间;
-B: 将标注输出重新定向到“/dev/null”,关闭标注输入,将程序作为后台进程运行;
-f:清空所有计数器;
-h:显示帮助信息。
实例 :
iptraf -d eth0 #监视网卡eth0的详细流量
iptraf -i eth0 #监视网卡eth0的详细ip流量
iptraf -s eth0 #监视网卡eth0的详细tcp/udp流量
iptraf-ng #监视网络接口的概要状态信息
iptraf命令支持命令行和菜单操作两种方式,当不带任何参数是iptraf命令将进入菜单操作方式,通过屏幕菜单来执行相应操作。
6、ifstat – 统计网络信息
ifstat命令 就像iostat/vmstat描述其它的系统状况一样,是一个统计网络接口活动状态的工具。ifstat工具系统中并不默认安装,需要自己下载源码包,重新编译安装,使用过程相对比较简单。
语法:
ifstat [选项]
-l 监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。经使用发现,加上-l参数能监测所有的网络接口的信息,而不是只监测 lo的接口信息,也就是说,加上-l参数比不加-l参数会多一个lo接口的状态信息。
-a 监测能检测到的所有网络接口的状态信息。使用发现,比加上-l参数还多一个plip0的接口信息,搜索一下发现这是并口(网络设备中有一 个叫PLIP (Parallel Line Internet Protocol). 它提供了并口...)
-z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的 -i 指定要监测的接口,后面跟网络接口名
-s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机
-h 显示简短的帮助信息
-n 关闭显示周期性出现的头部信息(也就是说,不加-n参数运行ifstat时最顶部会出现网络接口的名称,当一屏显示不下时,会再一次出现接口的名称,提示我们显示的流量信息具体是哪个网络接口的。加上-n参数把周期性的显示接口名称关闭,只显示一次)
-t 在每一行的开头加一个时间 戳(能告诉我们具体的时间)
-T 报告所有监测接口的全部带宽(最后一列有个total,显示所有的接口的in流量和所有接口的out流量,简单的把所有接口的in流量相加,out流量相 加)
-w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
-W 如果内容比终端窗口的宽度还要宽就自动换行
-S 在同一行保持状态更新(不滚动不换行)注:如果不喜欢屏幕滚动则此项非常方便,与bmon的显示方式类似
-b 用kbits/s显示带宽而不是kbytes/s
q 安静模式,警告信息不出现
-v 显示版本信息
-d 指定一个驱动来收集状态信息
这部分是我看了大佬的博客找到的参数:
-p | 优化打印 |
-a | 忽略历史记录 |
-e | 显示错误信息 |
-r | 重置历史记录 |
实例:
默认使用:
[root@localhost ifstat-1.1] #ifstat
eth0 eth1
KB/s in KB/s out KB/s in KB/s out
0.07 0.20 0.00 0.00
0.07 0.15 0.58 0.00
监控所有接口:
[root@localhost ifstat-1.1] # ifstat -a
lo eth0 eth1
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
0.00 0.00 0.28 0.58 0.06 0.06
0.00 0.00 1.41 1.13 0.00 0.00
0.61 0.61 0.26 0.23 0.00 0.00