[三板斧3]关于Wireshark和tshark的使用
[三板斧3]关于Wireshark和tshark的使用
Capture n.战利品;l『捕获』;俘虏;占领,『抓取』
filter v.过滤概念的坑: 【一个事实上的标准】wireshark中,比如“抓包 ( packet )”一词本身就不够精确,Wireshark抓到的应该是帧(frame )。但是出于表达习惯,我并没有改成“抓帧”。又比如对同一个网络分层的称呼,工程师们也有不同的习惯,希望读者能够接受这些“混乱"!
Wireshark介绍
- 1、功能:网络流量『捕获』和『分析』的软件
- 网络工作者:网络工程师or运维工程师or安全方面人员or,不会wireshark的使用工具,就不是一个合格的网络工作者
- 2、历史:Ethereal是wireshark前身,2006年更名为wireshark,改名的原因是『商标和版权』好像
- 3、原理:由于wireshark会调用咋们这些,底层的网络或功能,从硬件上捕获对应的二进制流量(咋们在网络过程中所有的数据or数据包,都是以0,1序列,这个二进制数据包来传输的。
捕获,之后,wireshark内部具有对应的功能转换器,将0,1序列转换或者是组装为1个合法的数据包,然后分析咋们组装好的数据包,识别出,其中的协议,端口,以及目的地等信息。从而使得wireshark捕获之后,会以咋们人类可以识别的方式的这种信息来展示,使得咋们更直观的查看到网络流量。
1、『捕获』二进制流量
2、『转换』wireshark组装数据包『wireshark内部具有对应的功能转换器』
3、分析捕获的数据包,识别协议等信息- 4、优势:开源免费,跨平台,可视化『比如tcpdump是命令行』,功能强大『支持的协议特别多,几乎涵盖现在所有已知的所有协议』
- 5、下载安装:官网
- 6、基本使用方式:『4步骤』
1、选择网卡『因为网络流量是通过网卡在网络当中进行传输,网卡是可以接收流向该网卡或者是在局域网某个网络中的流量,并且接收和发送你要送出的这个数据包
这是流入流出的关键例子,,因为你的计算机可能有多张网卡,
比如,我们最简单的实例,(lo网卡)环回网卡127.0.0.1,其实它也是计算机虚拟出来的一张网卡,
2、捕获数据流量
3、过滤数据包『数据流量捕获之后,我们可能不想查看某些数据流量,此时,我们就可以通过其中的过滤数据包功能,过滤掉某些数据包,只显示我们想要分析的
4、保存数据包『咋们分析完之后,可能获得一个结论,但是你要给别人看,或者是下次分析的时候,你不可能再次抓一次包,因为网络环境在变,下次抓的包很有可能是不同的,为了方便分析,wireshark提供了保存数据包功能wireshark在Linux下使用,可以在终端用
wireshark打开
ifconfig 查看网卡
eth0 是对外的网卡
lo 是本地环回网卡常用1:专家信息(Expert Information)
中文:分析-->专家信息
英文:Analyze->Expert Information

常用2:流量图(Flow Graph)
中文:统计->流量图【里面可以选择看tcp的,也可以看icmp之类的,就是那种tcp握手之类的)
英文:Statistics->Flow Graph
(1)过滤演示
点击expression,但是我的好像没有
只要看http协议,过滤表达式的书写
http然后点击应用,也可能是回车,这样就只看http的了
保存前,要停止抓包,保存类似word
可以保存的文件后缀
pcapng(2)wireshark包过滤
- wireshark抓包界面介绍:后面操作过程中,会知道我们该在哪找具体的功能。以及如何查看对应的信息
- 伯克利包过滤介绍
工具栏下面是个『筛选器』
或者说是『筛选过滤器』
通过这个可以筛选掉一些无关紧要的内容,使得只显示我们想要查看的某些数据包
『所以,我觉得这个名字取得不好,分明是查找我们要的,硬要转个弯说是过滤掉不要的』
比如,想要过滤,就使用快捷键Ctr+/
2.『伯克利』过滤器介绍
2.1.概念
- 伯克利包过滤规则:『这是一种核心思想』
- BPF(Berkeley Packet Filter)采用与自然语言相近的语法,利用语法构造字符串确定保留具体符合规则的数据包而忽略其他数据包。
2.2.语法
1、最简单的筛选规则:一个空白字符『无论你任何的数据包都将符合咋们空白字符』这是BPF的基础
2、语法规则:『3部分』
type 表示对象『类似自然语言中的主语』,如IP地址、子网或者端口 host、net、port
dir 表示数据包传输的方向 src、dst
proto 表示与数据包匹配的协议类型 ether、ip、tcp、arp- 其中,IP地址锁定某个具体主机,对应的子网锁定某个范围的多个主机,端口是锁定某个具体的服务『通过它可以确定网络上具体的某个对象』
3、语法样例『演示』
1、IP地址
『筛选出,源IP或者目的IP是这个IP地址的』
IP地址为192.168.4.5
- 伯克利语法
host 192.168.4.5注意上面的不能直接用,必须用户,我们的IP对应的就是伯克利表示式对应的host后面的
- wireshark语法
ip.addr == 192.168.4.52、src地址
源地址为192.168.4.5
src 192.168.4.5- wireshark语法
ip.src == 192.168.3.2363、dst
目的地址簿是192.168.4.5
dst 192.168.4.5- wireshark语法
ip.dst == 192.168.3.2364、port
目标端口是80
dst port 192.168.4.5上面的语法中:所有端口port前面,可以添加tcp或udp。比如:udp.port和tcp.port,额,曾前面加tcp啥的,还加了一个.
tcp.port == 80tcp.port == 80 || udp.port == 805、网络范围
- 伯克利语法
net 192.168.4.0/24CIDR『无类别域间路由』,,,表示无域间域名类型转换
通过它,可以表示某个网络范围内的所有IP地址或者是主机。
- wireshark语法
ip.addr == 192.168.3.0/24上面这样的就能。筛选出,IP地址在对应的子网当中的内容
6、并且和或
tcp.port == 80 and ip.dst == 192.168.3.2362.3.自己总结的语法
- wireshark语法,感觉是
协议.协议内容 == 逻辑关键词(||或and或not)- 所以,src和dst和ip才是在ip中封装
2.4.wireshark包过滤器分类:
- 『捕获』过滤器:是在咋们在抓包之前,进行设置,这样wireshark就不会抓获不符合规则的数据包『设置包捕获过滤器的方法:Capture filter for selected interfaces:设置,
- 『筛选』过滤器:是在抓包之后,应用的,是『显示过滤器』,我们前面用的功能都是这种过滤器!!!
3.『捕获』过滤器『前面』
- 遵循伯克利过滤器语法规则:也就是说,前面的语法也遵循
- 演示:
3.1.只捕获目标端口为80的tcp数据包
tcp dst port 803.2.捕获主机P地址为192.168.4.5的数据包
host 192.168.3.236或者
dst host 192.168.3.236src host 192.168.3.236注意:捕获过滤器,不支持我们起那么的那只CIDR的书写以及主机名的写法
3.3.语法很像直接的伯克利表达式
4.『筛选』过滤器『后面』
- 筛选过滤器,又称『显示过滤器』
1、显示过滤器创建『2种方法』
输入框创建,快捷键Ctrl+/
http.request.full_uri == "www.baidu.com"数据包细节面板创建『就是你查看某个包的细节,你右键那个选中,就能选择』
2、表达式规则
语法:主题+运算符+值
运算符比如: == > <逻辑关系(3个)下面6种写法都OK
and or not && || !
此外!!:可以使用圆括号来控制了『优先级』
5.Wireshark捕获输出
- 捕获的数据包如何进行有规则的保存?
5.1.设置输出文件格式
- pcap-ng还是pcap
可以在选项中设置。容易
5.2.输出文件位置
5.3.数据流特别大,会导致文件太大,导致wireshark无法正常打开保存的文件
- 比如用wireshark抓取某个主机流量的时候,可能这个数据特别大。当然你如果在本地不开任何网络程序的话,可能数据量是非常小的,但是如果你监听大型服务器的话,它的数据流量就是特别大的,如果把数据流量保持,此时会导致,无法打开超大量的文件,会出现卡顿
- 解决方案:设置自动创建新文件,每隔10秒创建一个文件。
- 『捕获选项』中修改
5.4.使用wireshark进行网络监控,无论硬盘空间多大都有可能会被消耗殆尽
- 『捕获选项』中修改
- 解决方案:环形缓存器
5.5捕获选项
显示选项Display option
解析名称Name Resolution
自动停止捕获Automatically scrpll during live capture『比如设置抓20个文件的包,就停止』
5.6.使用文件中的保存
- 容易,Ctrl+S
6.Wireshark杂项设置
- wireshark中特别边角料,但是也可能绊倒你的杂项设置
6.1.查看wireshark『内置文件』路径
- 设置,或者说不是用来配置,而是为了来帮助我们找到具体的文件路径的方式。
- 我们可以找到,wireshark的所有相关文件,比如说『它的配置文件』和它的使用到的文件路径
还有,我们这个类似的VScode中装的『插件』啥的,都可以在这个里面看到。还可以看『快捷键』
参考资料
- 网络安全wireshark中文使用教程
- W3C中wireshark
- wireshark用户手册,中文翻译版
- 小林Coding,让你“看见TCP”
- Github,《计算机网络-自顶向下方法》实验翻译
- wireshark官网的开发者指南
- C语言中文网-wireshark安装
- [美]Chris Sanders,《Wireshark数据包分析实战》
- 林沛满,《Wireshark网络分析就这么简单》
- 51CTO,Wireshark网络分析实践,Xmind版