Linux抓包工具tcpdump使用总结,WireShark的过滤用法

摘要:
tcpdump与WireShark是Linux下的两个常用,功能强大的抓包工具,下面列出这两个工具的简单用法。WireShark中的判断语句等于:eq或==大于:gt或˃小于:lt或=小于等于:le或˂=不等于:ne或!注意:协议名称为小写,大写会报错httpudptcparpicmpsmtppopdnsipsslftptelnetsshrdpripospf捕获多种协议,只需要对协议进行逻辑组合httporudp排除某种协议的数据包notarpnottcp按内容长度过滤http.content_length˂=100http.content_length_header˂=100针对数据包内容的过滤匹配http请求中含有/api/member/health/check的请求信息http.request.urimatches"/api/member/health/check"查询url中包含/api/member/home/test.html?

tcpdump与WireShark是Linux下的两个常用,功能强大的抓包工具,下面列出这两个工具的简单用法。

tcpdump用法

tcpdump用法:

sudo tcpdump -i ens33 src 192.168.0.19 port 80 -xx -Xs 0 -w test.cap
sudo tcpdump -i ens33 src port 80 -xx -Xs 0 -w test.cap

参数说明:
-i: 指定网卡
src: 指明包的来源
port: 指明端口号
-xx: 指抓到的包以16进制显示
-X: 指以ASCII码显示
-s 0: 指明抓整个包
-w: 写到文件中

WireShark过虑用法

【WireShark中的逻辑运算】
与: and 或 &&
或: or 或 ||
非: not 或!

WireShark中的判断语句
等于: eq 或 ==
大于: gt 或 >
小于: lt 或 <
大于等于: ge 或 >=
小于等于: le 或 <=
不等于: ne 或 !=

组合符(小括号)
()

包含与正由表达式匹配运算符
contains
matches
注意:matches 后的关键字是不区分大小写的,contains后面的关键字区分大小写。

【协议过滤】
在表达式输入框中输入协议名称即可。
注意:协议名称为小写,大写会报错
http
udp
tcp
arp
icmp
smtp
pop
dns
ip
ssl
ftp
telnet
ssh
rdp
rip
ospf

捕获多种协议,只需要对协议进行逻辑组合
http or udp

排除某种协议的数据包
not arp not tcp

【http域名与url过滤】
按内容长度过滤
http.content_length <= 100
http.content_length_header <= 100

针对数据包内容的过滤
匹配http请求中含有/api/member/health/check 的请求信息
http.request.uri matches "/api/member/health/check"

查询url中包含/api/member/home/test.html? 字符串的信息

http.request.uri contains "/api/member/home/test.html?"

按域名过滤

http.host == "jd.com" #精确过滤
http.host contains "jd.com" #模糊过虑

过滤请求的uri,取值是域名后的部分
http.request.uri=="/online/setpoint"

过滤完整的url
http.request.full_uri=="https://passport.jd.com/uc/login"

按http响应的状态过虑
http.response.code==302
http.response.code==401

过滤所有的http响应包
http.request==1
http.response==1

过滤所有请求方式为POST或GET的http请求包,注意POST或GET为大写
http.request.method==GET
http.request.method==POST

过滤含有指定cookie的http数据包
http.cookie contains userid

过滤http头中server字段含有nginx字符的数据包
http.server contains "nginx"

过滤content_type是text/html的http响应
http.content_type == "text/html"

过滤content_type是application/json的http响应

http.content_type == "application/json"

过滤content_encoding是gzip的http包
http.content_encoding == "gzip"

过滤所有含有http头中含有server字段的数据包
http.server

过滤HTTP/1.1版本的http包,包括请求和响应
http.request.version == "HTTP/1.1"

过滤http响应中的phrase
http.response.phrase == "OK"

【ip与端口过滤】
按目标地址过滤
ip.dst==192.168.0.19

按源地址过滤
ip.src==192.168.0.26

按目标地址或源地址过滤
ip.addr==192.168.0.19

按目标端口或源端口过滤
tcp.port==1935
udp.port==2365

按源端口过滤
tcp.srcport==2365
udp.srcport==2365

按目标端口过滤
tcp.dstport==1935
udp.dstport==1935

【数据过滤】
按包长度过滤
tcp.length < 300
udp.length < 300

过滤指定长度的udp数据包
udp.length == 20

过滤指定长度的tcp数据包
tcp.length == 20

过滤data部分长度为8的数据包
data.len==8

过滤指定内容的数据包
data.data == 00:08:30:03:00:00:00:00

【捕获经过指定ip的数据包】

抓取192.168.0.1 收到和发出的所有数据包
host 192.168.0.9

源地址192.168.0.1发出的所有数据包
src host 192.168.0.9

目标地址192.168.0.1收到的所有数据包
dst host 192.168.0.9

根据主机名过滤
src host hostnam

根据MAC地址过滤
ether host 80:05:09:03:E4:35

网络过滤,过滤整个网段
net 192.168.0
src net 192.168
dst net 192

【MAC地址过滤】

过滤目标或源地址是00:11:22:33:44:55的数据包
eth.addr== 00:11:22:33:44:55

过滤源地址是00:11:22:33:44:55的数据包
eth.src== 00:11:22:33:44:55

过滤目标地址是00:11:22:33:44:55的数据包
eth.dst== 00:11:22:33:44:55

【组合过滤】

捕获udp源端口等于3457,源ip等于3457,或者udp目标端口等于1091,目标ip等于192.168.0.10的数据包
(upd.srcport==3457 and ip.src=192.168.0.9) or (upd.dstport==1091 and ip.dst=192.168.0.10)

抓取所有目的网络是192.168,但目的主机不是192.168.0.2 的TCP数据
(tcp) and ((dst net 192.168) and (not dst host 192.168.0.2))

抓取所有目标MAC 地址是80:05:09:03:E4:35 的ICMP 数据
(icmp) and ((ether dst host 70:03:09:15:F4:12))
icmp && eth.dst==70:03:09:15:F4:12

免责声明:文章转载自《Linux抓包工具tcpdump使用总结,WireShark的过滤用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决Firefox显示“已阻止载入混合活动内容”的方法layui学习--tab选项卡下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql主从之keepalive+MySQL高可用

一 keepalive介绍 1.1 keepalived 是什么 keepalived 是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 1.2 keepalived 工作原理 keepalived 是以VRRP 协议为实现基础的,VRRP 全称VirtualRouter Redundancy Protocol,即虚拟路由冗余协议。虚拟路由冗...

Android WebView 的 addJavascriptInterface 探究

一、前言 Java和JS交互的方式有多种,这里探讨的方式是通过以下方式进行的交互。 webView.addJavascriptInterface(this, "JSBridge") 这篇文章是想弄明白 JavaScript 和 Java是如何实现这种方式互调的,就从源码角度开始分析 。 二、分析 1. 图示调用关系 上面这张调用关系流程图,关于源码是基于...

VMWare虚拟机网络的三种工作模式

VMWare提供了三种工作模式:   1.bridged(桥接模式)   在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个...

Python&amp;amp;Redis

一、单机   1、安装redis模块 sudo pip3 install redis 或 sudo easy_install redis      源码地址:https://github.com/WoLpH/redis-py  、https://github.com/redis/redis-py   2、单机连接     redis模块提供两个类Redis...

centos下安装wireshark 抓包

centos下安装wireshark相当简单.两条命令就够了.这里.主要是记录写使用方面的东西 安装:1、yum install wireshark。注意这样并无法使用wireshark命令和图形界面。但提供了抓包基本功能。2、yum install wireshark-gnome。这样就可以方便的使用了。 如果能登录图形界面终端.那使用和windows下...

Wireshark使用入门(转)

Wireshark使用入门  目录 1. Wireshark介绍 1.1 客户端界面 1.2 Display Filter 的常用方法 1.3 界面上一些小TIPS 2. 使用Wireshark分析TCP三次握手过程 2.1 三次握手原理 2.2 第一次握手 2.3 第二次握手 2.4 第三次握手 2.5 为什么是三次握手 3. 请求数据...