几款抓包工具tcpdump、wireshark、tshark的简单介绍
来源:互联网 发布:vmware下安装linux 编辑:程序博客网 时间:2024/05/21 08:54
几款抓包工具tcpdump、wireshark、tshark的简单介绍
http://tshare365.com/archives/1295.html
前言
在Linux下,当我们需要抓取网络数据包分析时,通常是使用工具tcpdump。但是,有时我们需要将抓取的数据包保存在一个文件中,已备以后分析。而tcpdump保存的文件是二进制的文件,使用cat 和vim 都无法打开查看。此时我们采取的措施是,下载到本地使用wireshark界面网络分析工具进行网络包分析。
最近才发现,原来wireshark也提供有Linux命令行工具tshark。tshark不仅有抓包的功能,还带了解析各种协议的能力。下面我们就来简单点的介绍的下这几款工具的使用的方法。
一、Tcpdump工具的使用
1、常用参数
1.1、常用选项
[ -i interface ] 指定接口
[ -W filecount ] 保存在指定的文件
-r 通过读取文件的方式,来实现抓包,而不是使用
-n 表示以数字形式显示,如果是多个N,第一个表示把主机名显示成数字,第二个N表示把协议的端口显示成数字。
-XX支持链路层。
1.2、类型相关的关键字
host ,net ,port
1.3、流向相关的关键字
Src ,dst ,src or dst ,src and dst
1.4、Proto 协议
ether,ip ,arp,tcp,udp,
1.5、组合逻辑表达式
And OR NOT
2、使用举例
2.1、显示进来的IP,在22端口的。
[root@director1 keepalived]
# tcpdump -i eth0 dst 172.16.11.1 and port 80
2.2、显示目标是172.16.11.1 端口是80的
[root@director1 keepalived]
# tcpdump -nn -vv -i eth0 tcp src or dst 172.16.11.1 and port 80
2.3、把抓取的22端口的信息放在文件/packets中
[root@director1 ~]
# tcpdump -nn -i eth0 -w /packets tcp and dst 172.16.11.1 and port 22
2.4、源和目标地址的
[root@director1 keepalived]
# tcpdump -nn -vv -i eth0 src and dst 172.16.11.1 and port 80
最常用法
[root@node1 ~ ]
# tcpdump -nn -i eth0 tcp and host 192.168.1.163 and port 80
####注意:这个-nn的含义:第一个n表示以IP地址的方式显示主机名,第二个N是以端口数字的形式代替服务名。
[root@node1 ~ ]
# tcpdump -nn -vs0 -i eth0 -c 100 -w 1.cap
##对于包-c指定抓多少包,-w 指明自己要存放的位置, -vs0 表示不限制包的大小,所有的包都抓出来。
tcpdump: listening on eth0, link-
type
EN10MB (Ethernet), capture size 65535 bytes
100 packets captured
100 packets received by filter
###显示一百个包,已经抓好了。
0 packets dropped by kernel
###但是,需要注意的是,这里面保存在1.cap的包是以二进制格式保存的,如果是vim,cat都无查看,可以借助于工具,wireshare。
二、安装wireshark
Wireshark-gnome 是一个图形化的工具
yum
install
wireshark wireless-tools-devel wireshark-gnome -y
1.1、打开wireshark的方式
1.2、然后开启一个图形化界面
1.3、点击左上角的file–>open打开我们的抓包存储的文件就可以了
1.4、Location:输入我们要查找文件的位置
1.5、下面分享一个我之前对MySQL命令的抓包案例
三、命令行工具tshark
1.1、实时打印当前http请求的url(包括域名)
tshark -s 512 -i eth0 -n -f
'tcp dst port 80'
-R 'http.host and http.
request
.uri' -T fields -e http.host -e http.request.uri -l
|
tr
-d '
\
t'
参数解释:
-i eth0 :捕获eth0网卡 -s 512 :只抓取前512个字节数据
-n :禁止网络对象名称解析
-f 'tcp dst port 80' :只捕捉协议为tcp,目的端口为80的数据包
-R 'http.host and http.request.uri' :过滤出http.host和http.request.uri
-T fields -e http.host -e http.request.uri :打印http.host和http.request.uri
-l :输出到标准输出
1.2、实时打印当前mysql查询语句
tshark -s 512 -i eth0 -n -f
'tcp dst port 3306'
-R
'mysql.query'
-T fields -e mysql.query
下面介绍参数含义:
-s 512 :只抓取前512个字节数据
-i eth0 :捕获eth0网卡
-n :禁止网络对象名称解析
-f 'tcp dst port 3306' :只捕捉协议为tcp,目的端口为3306的数据包
-R 'mysql.query' :过滤出mysql.query
-T fields -e mysql.query :打印mysql查询语句
tshark使用-f来指定捕捉包过滤规则,规则与tcpdump一样,可以通过命令man pcap-filter来查得。
tshark使用-R来过滤已捕捉到的包,与界面板wireshark的左上角Filter一致。
除此之外,他可以通过抓包查看到那些用户通过那些命令,以及是使用的什么方法。请求的我们的主机。
1.3、详细查看用户对我们的主机进行那些请求方法
[root@node1 ~ ]
# tshark -n -t a -R http.request -T fields -e "frame.time" -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.requset.uri"
###命令的执行的结果
总结
关于抓包的几款工具到此解释完毕,如果有什么疑问请留言!
- 几款抓包工具tcpdump、wireshark、tshark的简单介绍
- 抓包工具 tcpdump , tshark
- linux下的抓包工具tshark和 tcpdump用法
- linux下的抓包工具tshark和 tcpdump用法
- linux下的抓包工具tshark和 tcpdump用法
- 抓包工具:tcpdump和wireshark
- 抓包工具TcpDump for Android + wireshark
- tshark抓包工具的使用
- 介绍一款敲好用的抓包工具Wireshark
- 网络抓包工具Wireshark的简单使用
- Python 简单的模拟wireshark抓包工具
- tcpdump抓包工具使用实例介绍
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- URL中加号变空格
- 第二周项目1—C++/C语言中函数参数传递的三种方式
- 百度地图
- react表单
- 第二周 项目2
- 几款抓包工具tcpdump、wireshark、tshark的简单介绍
- 为什么Lisp适合处理递归?
- C++ 类的应用
- 项目2
- composer 安装依赖
- Shell脚本IF条件判断和判断条件总结
- mac上安装.Net core SDK,并开始第一个C#程序
- 461. Hamming Distance
- PAT 1131. Subway Map (30) DFS