linux 网络监控 优化,Linux性能优化(七)——网络流量监控工具

一、iftop

1、iftop简介

iftop命令可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。

在线安装:yum install iftop

2、iftop命令

iftop -h | [-nNpblP] [-u unit] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]

-h:查看帮助信息

-i:指定监控网卡

-b:不显示流量柱状图

-B:以字节为单位显示流量(默认bits)

-n:不解析主机名称,直接都显示IP

-N:不解析端口服务,直接显示端口号

-F:显示特定网段的进出流量

-m limit:设置带宽上限,可使用K、M、G作为后缀

iftop -b -n -N -F 192.168.0.0/24

e5e3e60c337b0047f6c70717ffd3f140.png

TX:发送流量

RX:接收流量

TOTAL:总流量

cum:累积总流量

peak:流量峰值

rates:分别表示最近2s、10s、40s的平均流量

3、iftop交互命令

按h切换是否显示帮助

按n切换显示本机IP或主机名

按s切换是否显示本机的host信息

按d切换是否显示远端目标主机的host信息

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量

按N切换显示端口号或端口服务名称

按S切换是否显示本机的端口信息

按D切换是否显示远端目标主机的端口信息

按p切换是否显示端口信息

按P切换暂停/继续显示

按b切换是否显示平均流量图形条

按B切换计算2秒或10秒或40秒内的平均流量

按T切换是否显示每个连接的总流量

按l打开屏幕过滤功能,输入要过滤的字符,

按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化

按j或按k可以向上或向下滚动屏幕显示的连接记录

按1或2或3可以根据右侧显示的三列流量数据进行排序

按根据远端目标主机的主机名或IP排序

按o切换是否固定只显示当前的连接

按f可以编辑过滤代码

按!可以使用shell命令

按q退出监控

二、netstat

1、netstat简介

netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

2、netstat命令

netstat [-vWeenNcCF] [] -r

netstat {-V|--version|-h|--help}

netstat [-vWnNcaeol] [ ...]

netstat { [-vWeenNac] -I[] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

-a,--all:显示所有连线中的Socket。

-A 或-- 列出该网络类型连线中的相关地址。

-c,--continuous:持续列出网络状态。

-C,--cache:显示路由器配置的快取信息。

-e,--extend:显示网络其他相关信息。

-F,--fib:显示FIB。

-g,--groups:显示多重广播功能群组组员名单。

-h,--help:在线帮助。

-i,--interfaces:显示网卡列表

-l,--listening:显示监控中的服务器的Socket。

-M或--masquerade 显示伪装的网络连线。

-n或--numeric 直接使用IP地址,而不通过域名服务器。

-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。

-o或--timers 显示计时器。

-p或--programs 显示正在使用Socket的程序识别码和程序名称。

-r,--route:显示Routing Table。

-s,--statistics:显示网络工作信息统计表。

-t,--tcp:显示TCP传输协议的连线状况。

-u,--udp:显示UDP传输协议的连线状况。

-v,--verbose:查看不支持的地址族。

-V,--version:显示版本信息。

-w,--raw:显示RAW传输协议的连线状况。

-x,--unix:此参数的效果和指定"-A unix"参数相同。

--ip,--inet:此参数的效果和指定"-A inet"参数相同。

3、netstat常用命令

netstat -a

列出所有端口

netstat -at

列出所有TCP端口

netstat -au

列出所有UDP端口

netstat -l

只显示监听端口

netstat -lt

只列出所有监听TCP端口

netstat -lu

只列出所有监听UDP端口

netstat -lx

只列出所有监听UNIX端口

netstat -s

显示所有端口的统计信息

netstat -st

显示TCP端口的统计信息

netstat -su

显示UDP端口的统计信息

netstat -pt

输出PID和进程名称

netstat -r

显示核心路由信息

netstat -ap | grep ssh

查找程序运行的端口

netstat -an | grep ':80'

查找运行在指定端口的进程

netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr

查看连接某服务端口最多的的IP地址

netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'

TCP各种状态列表

netstat -anpo | grep "php-cgi" | wc -l

查看phpcgi进程数,如果接近预设值,说明不够用,需要增加

netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20

查看连接某服务端口最多的的IP地址

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

17c0879e21ef878c5a34db05e0f4b6b4.png

SYN_SENT:客户端发送一个SYN以请求建立一个连接后状态置为SYN_SENT。 SYN_RECV:服务端发出ACK确认客户端的SYN,同时自己向客户端发送一个SYN,状态置为SYN_RECV。

ESTABLISHED:代表一个打开的连接,双方可以进行或已经在数据交互。

FIN_WAIT1:主动关闭端应用程序调用close,发出FIN请求主动关闭连接,进入FIN_WAIT1状态。

CLOSE_WAIT:被动关闭端TCP接到FIN后,就发出ACK以回应FIN请求,进入CLOSE_WAIT状态。

FIN_WAIT2:主动关闭端接到ACK后,就进入FIN-WAIT-2状态。LAST_ACK:被动关闭端一段时间后,接收到文件结束符的应用程序将调用CLOSE关闭连接,发送一个FIN,等待收到对方ACK后状态为LAST-ACK。

TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态。

CLOSING:等待远程TCP对连接中断的确认

CLOSED:被动关闭端在接受到ACK包后,进入CLOSED状态,连接结束。

UNKNOWN:未知的Socket状态。

三、tcpdump

1、tcpdump简介

tcpdump是用于抓取和分析经过系统的流量数据包的命令行工具,通常被用作网络故障分析工具以及安全工具。

2、tcpdump命令

tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ] [ -Q|-P in|out|inout ] [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ] [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]

[ -Z user ] [ expression ]

-a:将网络和广播地址转换成名称。

-c count:抓取数据包数目

-e:显示连接层级的文件头

-f:用数字显示网络地址。

-F 表达文件:指定内含表达方式的文件。

-i interface:指定抓取数据包的网卡设备

-l:使用标准输出列的缓冲区。

-n:不把主机的网络地址转换成名字。

-N:不列出域名。

-O:不将数据包编码最佳化

-q:快速输出模式,仅列出少数传输协议信息

-r数据包文件:从指定文件读取数据包数据。

-s 数据包大小:设置每个数据包的大小。

-S:用绝对而非相对数值列出TCP关联数。

-t:不显示时间戳

-tt:显示未经格式化的时间戳

-T 数据包类型:强制将表达方式所指定的数据包转译成设置的数据包类型。

-v:详细显示指令执行过程。

-vv:更详细显示指令执行过程。

-x:用十六进制字码列出数据包资料。

-w数据包文件: 把数据包数据写入指定的文件。

tcpdump -enfN -r test.cap

tcpdump -r test.cap

3、tcpdump常用命令

tcpdump -i wlp3s0 tcp port 80

抓取wlp3s0网卡的TCP协议80端口的数据包

tcpdump -i wlp3s0 dst host 192.168.0.104

抓取wlp3s0网卡的目的主机为192.168.0.104的数据包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值