一、iftop1、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:不解析主机名称linux查看网络流量 命令,直接都显示IP
-N:不解析端口服务,直接显示端标语
-F:显示特定网关的进出流量
-mlimit:设置带宽上限,可使用K、M、G作为后缀
iftop -b -n -N -F 192.168.0.0/24
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退出监控
二、netstat1、netstat简介
netstat用于显示与IP、TCP、UDP和ICMP合同相关的统计数据linux服务器系统,通常用于检验本机各端口的网路联接情况。
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:显示RoutingTable。
-s,--statistics:显示网路工作信息统计表。
-t,--tcp:显示TCP传输合同的连线状况。
-u,--udp:显示UDP传输合同的连线状况。
-v,--verbose:查看不支持的地址族。
-V,--version:显示版本信息。
-w,--raw:显示RAW传输合同的连线状况。
-x,--unix:此参数的疗效和指定"-Aunix"参数相同。
--ip,--inet:此参数的疗效和指定"-Ainet"参数相同。
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
SYN_SENT:顾客端发送一个SYN以恳求构建一个联接后状态置为SYN_SENT。SYN_RECV:服务端发出ACK确认顾客端的SYN,同时自己向顾客端发送一个SYN,状态置为SYN_RECV。
ESTABLISHED:代表一个打开的联接,双方可以进行或早已在数据交互。
FIN_WAIT1:主动关掉端应用程序调用close,发出FIN恳求主动关掉联接,步入FIN_WAIT1状态。
CLOSE_WAIT:被动关掉端TCP接到FIN后linux查看网络流量 命令,就发出ACK以回应FIN恳求,步入CLOSE_WAIT状态。
FIN_WAIT2:主动关掉端接到ACK后,就步入FIN-WAIT-2状态。LAST_ACK:被动关掉端一段时间后linux开源软件,接收到文件结束符的应用程序将调用CLOSE关掉联接,发送一个FIN,等待收到对方ACK后状态为LAST-ACK。
TIME_WAIT:在主动关掉端接收到FIN后,TCP就发送ACK包,并步入TIME-WAIT状态。
CLOSING:等待远程TCP对联接中断的确认
CLOSED:被动关掉端在接受到ACK包后,步入CLOSED状态,联接结束。
UNKNOWN:未知的Socket状态。
三、tcpdump1、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:将网路和广播地址转换成名称。
-ccount:抓取数据包数量
-e:显示联接层级的文件头
-f:用数字显示网路地址。
-F抒发文件:指定内含抒发形式的文件。
-iinterface:指定抓取数据包的网卡设备
-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的数据包