位置: 编程技术 - 正文
推荐整理分享举例讲解Linux中tcpdump工具的应用(linux常用小技巧),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux的-lt,linux的-lt,linux的用法,linux中的tr,linux中的tr,linux例子,linux的-lt,linux中\t,内容如对您有帮助,希望把文章链接给更多的朋友!
先来看一个比较基本的用法:复制代码代码如下:tcpdump -i eth0其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦。
tcpdump的具体参数及意义:
-i:指定tcpdump监听的网络接口
-s:指定要监听数据包的长度
-c:指定要监听的数据包数量,达到指定数量后自动停止抓包
-w:指定将监听到的数据包写入文件中保存
-A:指定将每个监听到的数据包以ACSII可见字符打印
-n:指定将每个监听到数据包中的域名转换成IP地址后显示
-nn:指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-e:指定将监听到的数据包链路层的信息打印出来,包括源mac和目的mac,以及网络层的协议
-p:将网卡设置为非混杂模式,不能与host或broadcast一起使用
-r:指定从某个文件中读取数据包
-S:指定打印每个监听到的数据包的TCP绝对序列号而非相对序列号
tcpdump支持很多的关键字,下面先看几个例子:
(例1)tcpdump -i eth0 host ..0. ----- 在网口eth0上抓取主机地址为..0.的所有数据包 。
(例2)tcpdump -i eth0 net ..0.0/ ------ 在网口eth0上抓取网络地址为..0.0/的所有数据包
(例3)tcpdump -i eth0 port ------ 在网口eth0上抓取端口为的所有数据包(注意,这里不区分是源端口还是目的端口)
当然,我们也可以指定源端口或目的端口
(例4)tcpdump -i eth0 src port and dst port --- 在网口eth0上抓取源端口为且目的端口为的数据包,这里用到了and逻辑运算符
(例5)tcpdump -i eth0 icmp --- 在网口eth0上抓取所有icmp协议的数据包
以上几个例子,可以大致体现出tcpdump的基本用法。
实际上,tcpdump主要包括三种类型的关键字,第一种是关于类型的关键字,主要包括host,net,port,如上面的例(1)(2)(3),第二种
是确定传输方向的关键字,主要包括src,dst,src or dst,src and dst,这些关键字指明了传输的方向,如上面的例(4)。第三种是协议关键字,包括fddi,ip,arp,
rarp,tcp,udp,imcp等,如上面的例(5)。
除了这三种类型的关键字外,还有其他重要的关键字,如:gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是'not'、'!',与运算符是'and'、'&&'、
或运算符是'or'、'||',这些关键字可以组合起来构成强大的组合条件来满足我们的需求。
借助tcpdump统计http请求这里所说的统计http请求,是指统计QPS(每秒请求数),统计前十条被访问最多的url。一般做这样的统计时,我们经常会使用网站访问日志来统计。当我们来到一个陌生的服务器环境,需要立即统计当前前十条被访问最多的url,来初步确定是否存在攻击行为,使用tcpdump则简单得多,因为我们不需要关心网站日志在哪,不需要考虑网站日志有没有开启之类的问题,直接用tcpdump捕捉当前的http包,再进一步过滤,就会得出我们想要的统计。此功能已集成到EZHTTP,下面是效果图:
下面介绍其统计方法。1、捕捉秒的数据包。复制代码代码如下:tcpdump -i eth0 tcp[:2]=0x or tcp[:2]=0xf -w /tmp/tcp.cap -s 2>&1 &sleep kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`此命令表示监控网卡eth0,捕捉tcp,且-字节字符为GE或者PO,表示匹配GET或者POST请求的数据包,并写到/tmp/tcp.cap文件。2、这时候我们得到最新秒的二进制数据包文件,我们下一步就是通过strings命令来找出GET/POST的url以及Host。复制代码代码如下:strings /tmp/tcp.cap | grep -E "GET /|POST /|Host:" | grep --no-group-separator -B 1 "Host:" | grep --no-group-separator -A 1 -E "GET /|POST /" | awk '{url=$2;getline;host=$2;printf ("%sn",host""url)}' > url.txt此命令是本文的关键,通过strings显示二进制文件tcp.cap所有可打印字符,然后通过grep和awk过滤出http请求,并把拼接得到的url(包括域名+uri)写进一个文件url.txt。3、这时我们拿到了近秒钟所有的访问url,接下来的统计就容易得出,比如:统计QPS:复制代码代码如下:(( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / ))排除静态文件统计前访问url:复制代码代码如下:grep -v -i -E ".(gif|png|jpg|jpeg|ico|js|swf|css)" /tmp/url.txt | sort | uniq -c | sort -nr | head -n
Linux下Wireshark的网络抓包使用方法 Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具
在Linux系统中安装和使用apt-file命令 刚才安装Spynner模块,使用的是easy_installspynner安装,各种文件缺失啊,无意中发现apt-file命令,从此再也不用担心编译软件缺少某个文件而不知所措了。1
使用http_load来给Linux系统的服务器做压力测试 介绍个http_load压力测试工具,http_load,类似的工具还有webbench、ab、Siege。1、下载官方网站:
标签: linux常用小技巧
本文链接地址:https://www.jiuchutong.com/biancheng/353317.html 转载请保留说明!友情链接: 武汉网站建设