查看linux网络流量及带宽

查看linux网络流量及带宽,第1张

在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。

iftop类似于top的实时流量监控工具,可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。

查看流量是从哪些端口发送出去的:

# iftop -P

-P 选项会在iftop 的输出结果中开启端口显示

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

中间的<= =>这两个左右箭头,表示的是流量的方向。

TX:发送流量

RX:接收流量

TOTAL:总流量

Cumm:运行iftop到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s 10s 40s 的平均流量

要找到运行在该端口的进程,那么可以用netstat 或者lsof 来找到相应的进程。

使用netstat 命令来找到运行在10910这个端口上的进程:

# netstat -tunp | grep 10910

可以使用lsof 命令来找到运行在10909这个端口上的进程:

# lsof -i:10909

查看进程PID为51919的应用程序:

# ps -ef |grep 51919

nethogs: 按进程查看流量占用

iptraf: 按连接/端口查看流量

ifstat: 按设备查看流量

ethtool: 诊断工具

tcpdump: 抓包工具

ss: 连接查看工具

Linux查看网络流量 在GUI下面,有一大把的工具可以显示网络流量,那么,命令行下面怎么办?显然办法是有的,比如,ifconfig,会有这样的输 出:RX bytes:1224128649 (1.1 GiB) TX bytes:34114947 (32.5 MiB)过 一会再看,数值有所变化,两者的差值就是过去一段时间的流量。可是,这也太不人性化了……正所谓自己动手,丰衣足食,我们自己来写一个脚 本,实时显示并刷新!脚本如下,还是哪句话,本人功力有限,写脚本的原则是够用就好。 #!/bin/bashif [ -n "$1" ]theneth_name=$1elseeth_name="eth0"fii=0send_o=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`recv_o=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`send_n=$send_orecv_n=$recv_owhile [ $i -le 100000 ]dosend_l=$send_nrecv_l=$recv_nsleep 1send_n=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`recv_n=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`i=`expr $i + 1`send_r=`expr $send_n - $send_l`recv_r=`expr $recv_n - $recv_l`total_r=`expr $send_r + $recv_r`send_ra=`expr /( $send_n - $send_o /) / $i`recv_ra=`expr /( $recv_n - $recv_o /) / $i`total_ra=`expr $send_ra + $recv_ra`sendn=`ifconfig $eth_name | grep bytes | awk -F /( '{print $3}' | awk -F /) '{print $1}'`recvn=`ifconfig $eth_name | grep bytes | awk -F /( '{print $2}' | awk -F /) '{print $1}'`clearecho "Last second : Send rate: $send_r Bytes/sec Recv rate: $recv_r Bytes/sec Total rate: $total_r Bytes/sec"echo "Average value: Send rate: $send_ra Bytes/sec Recv rate: $recv_ra Bytes/sec Total rate: $total_ra Bytes/sec"echo "Total traffic after startup: Send traffic: $sendn Recv traffic: $recvn"done 该脚本(假设名叫traffic)默认显示eth0的流量,如果你有多个网卡,请将网卡作为参数传进去


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8313248.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存